Re: отличить "no-break пробел" от остальных
От: Кодт Россия  
Дата: 19.02.02 11:53
Оценка:
Здравствуйте oleg_m, Вы писали:

OM>Проблема:

OM>Необходимо обработать в VС++ текстовую unicode-строку, состоящую из всевозможных символов, включая как обычный пробел (и его 8 разновидностей 0x2000-0x200b, 0x3000), так и non-break space. Все пробелы кроме последнего ловятся обычной функцией isspace / iswspace. Но последний — никак не ловится. Ибо:
OM>в unicode-шрифтах он кодируется как 0x00A0 (), в windows-шрифтах — обычно как 0xA0, но не всегда.
OM>В шрифте Terminal, например, на этом месте стоит русская буква "а".
OM>Что делать?
OM>

А шрифт Terminal — вообще в OEM-кодировке.

Раз в задании сказано "юникодную строку" — то с Юникодом работать и надо.
А в случае ввода текста, набранного неким шрифтом (в некой кодировке) — сначала привести к Юникоду.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.