Comments 27
Одно но: NFKx могут вам текст изуродовать до полной неузнаваемости, так как прератят X² в X2. Но для спама это, конечно, вариант.
Но ведь можно текст «изуродовать», проверить на спам и, если всё ок, то записать его в базе/файл в изначальном виде…
Я собственно о том, что именно так и надо делать. Записывать в базу NFC можно, NFKC — ни в коем случае.
Спасибо за статью. Примечательная особенность Хабра в отличие от тех же обучающих и советующих сайтов на английском — люди в ASCII-мире не задумываются о проблемах национальных кодировок и толковой помощи от них не жди.
И именно поэтому весь мир переходит на УТФ8 в основном стараниями тех самых ASCII-жителей :)
А еще decomposed unicode используется по-умолчанию в MacOSX.
Я написал модуль для прозрачного перекодирования NFD -> NFC для macosx, если кому будет полезно.

code.google.com/p/nfd2nfc/
Вы могли бы поподробней рассказать как пользоваться вашим модулем?
Очень страдаю от decomposed unicode на Маке, в частности не могу нормально обмениваться файлами через NAS с коллегами из-за того, что Мак не понимает precomposed букву «й» в названиях файлов и наоборот.
Однажды я прогуливался по мосту и увидел человека, стоящего на краю, который собирался прыгнуть. Я быстро подбежал к нему и сказал «Стой! Не делай этого!»
«Я ничего не могу поделать» — плакал он, «я потерял интерес к жизни».
«Чем ты зарабатываешь на жизнь?» — спросил я.
Он сказал: «Я разрабатываю технические требования для веб-сервисов»
«Я тоже!» — сказал я. «Ты используешь REST-сервисы или SOAP-сервисы?»
Он сказал: «REST-сервисы»
«Я тоже!» — сказал я. «Ты используешь текстовой формат XML или бинарный формат XML?»
Он сказал: «текстовой формат XML»
«Я тоже!» — сказал я. «Ты используешь XML 1.0 или XML 1.1?»
Он сказал: «XML 1.0»
«Я тоже!» — сказал я. «Ты используешь UTF-8 или UTF-16?»
Он сказал: «UTF-8»
«Я тоже!» — сказал я. «Ты используешь нормализацию юникода формы C или нормализацию юникода формы KC?»
Он сказал: «нормализацию юникода формы KC»
«Умри, иноверная мразь!» — прокричал я, и столкнул его с моста.

tty01.blogspot.com/2004/07/unicode-normalization-form-c.html
У меня вот так вот выглядит:



Не подскажете, что нужно сделать, чтобы в фф были нормальные буквы вместо квадратиков? А то надоело уже :( Кстати, это не только в браузере, не нашёл пока ни одного приложения у себя которое бы нормально отображало этот символ, в винде (XP SP2) что-то не так настроено?
У вас поддержка азиатских языков установлена? MS IE до сих пор с Unicode не дружит (интерсно, кстати, как с этим в 8й версии), но в Firefox всё должно быть нормально…
Control Panel->Regional And Language Settings->Languages->Install files for complex scripts and right-to-left languages
Control Panel->Regional And Language Settings->Languages->Install fonts for East Asian languages

P.S. Я исхожу из того что у вас нормальная лицензионная винда: эти самые шрифты много весят, по умолчанию не ставятся и потому являются первым что пираты выбрасывают с CD чтобы сделать сборники типа «8 версий Windows в одном!»…
Действительно, что-то я не подумал про поддержку азиатских языков. Может, из-за этого у меня периодически квадратики и возникают. CD нету… эхх, остаюсь я, похоже, без японских точек :)
Было такое. Искал долго, в чем же дело. Оказалось — в файрволле. В Аутпосте. После его обновления больше не проявлялось.
Вроде, NFK* не приведут национальные символы, к латинице. Т.е. NFKD для русского «ё» = русское «е» + комбинирующий ":", а не латинское «e». Да и для того, что бы канонически разложить Ж, скажем, на >I< надо свою либу писать…
А я говорил, что NFKC приводит русскую «e» в английскую? Для полного визуального соответствия можно ещё добавить это, но вот еxample.com вам к example.com браузер не приравняет.
UFO landed and left these words here
Only those users with full accounts are able to leave comments. Log in, please.