Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Unicode нечувствительный к регистру

14
30 марта 2009 года
Phodopus
3.3K / / 19.06.2008
Суть проблемы:
берем буфер с некими данными, считаем эти данные Unicode-символами. Делаем CharUpperBuff() для копии этого буфера. Затем делаем CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE, ...) для двух этих буферов. Результат - не равны. Выявлено спотыкание на, например такой паре: 0x283 в оригинале и 0x1A9 после Upper. Собственно вопрос: кто знает что не так или почему так происходит? LOCALE_SYSTEM_DEFAULT пробовал с тем же результатом. Если символ не допустимый юникод - CharUpperBuff() должна его не трогать вообще..
7
30 марта 2009 года
@pixo $oft
3.4K / / 20.09.2006
А что это за символы такие получаются?Может,особые какие?

Попробуй буферу и его копии сделать CharLowerBuff и сравнить их.Наверняка результаты будут неожиданными:)
14
30 марта 2009 года
Phodopus
3.3K / / 19.06.2008
Незнаю что за символы, в таблице Courier их нет (а может есть один - я уже не помню - столько всего пересмотрел..), да и мне вообщем-то все равно :)
Если и буферу и его копии сделать одно преобразование, сравнение, яное дело, идет на ура. Данные-то, бинарно одинаковы получаются.
ПыСы. Пробовал LOCALE_NEUTRAL, LOCALE_INVARIANT - с тем же результатом...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог