Как проверить, содержит ли строка неразрывный пробел?

Мне нужно проверить, содержит ли строка неразрывный пробел, символ, представленный   который выглядит как обычное пространство, но отличается.

В следующей попытке subject будет содержать что-то вроде "Hey 3", где пробел между "Hey" и "3" является неразрывным пробелом:

if (date != "" && from != "" && subject.ToLower().Contains("hey&nbsp"))
{
    ...
}

Этот код не работает, так как я хочу соответствовать реальному символу Unicode, а не буквально "& nbsp".

Как я могу проверить, если мой subject строка содержит неразрывный пробел?

2 ответа

NBSP выступает за неразрывное пространство. В отличие от традиционного космического символа, два или более последовательных NBSP не сводятся к одному.

HTML-сущность   на самом деле переводится в Unicode символ с кодом 00A0, В C# вы можете написать это так: \u00A0,

Таким образом, строка для поиска становится "hey\\u00A0",
Использование функции литеральных строк языка C#. вышеуказанная строка может быть записана как @"hey\u00A0",

Вы можете ввести этот символ содержит

"hey 3".ToLower().Contains("hey\u00A0")

В котором "эй 3" на самом деле "эй \u00A03"

Другие вопросы по тегам