UTF-8 приемлем для чтения / записи азиатских языков? - PullRequest
7 голосов
/ 11 августа 2009

Я принимаю пользовательский ввод через веб-форму (как UTF-8), сохраняю ее в MySQL DB (используя набор символов UTF-8) и генерирую текстовый файл позже (закодированный как UTF-8). Мне интересно, есть ли вероятность повреждения текста, используя UTF-8 вместо чего-то вроде UCS-2? Достаточно ли хорош UTF-8 в этой ситуации?

Ответы [ 5 ]

14 голосов
/ 11 августа 2009

Более того, это, пожалуй, единственная кодировка, которую вам следует когда-либо рассмотреть.

Отличное чтение по теме:

Абсолютный минимум каждый разработчик программного обеспечения Абсолютно, положительно должен знать о Unicode и наборах символов (без извинений!) Джоэл Спольски

10 голосов
/ 11 августа 2009

Если вы работаете с большим количеством азиатского текста (больше, чем латинского текста), вы можете рассмотреть UTF-16. UTF-8 может точно представлять весь диапазон символов Unicode, но он оптимизирован для текста, который в основном является ASCII. UTF-16 экономит пространство на всей базовой многоязычной плоскости .

Но UTF-8, безусловно, «достаточно хорош» - коррупция не возникнет просто потому, что вы используете UTF-8, скажем, UTF-16.

2 голосов
/ 11 августа 2009

UTF-8 может представлять любой символ Unicode. Таким образом, у вас не должно быть проблем с UTF-8.

Фактически, UTF-8 может даже представлять некоторые символы, которые не может UCS-2 (UCS-2 может представлять только U + 0000 через U + FFFF; UTF-8, UTF-16 и UCS-4 обрабатывают все кодовые точки Unicode )

1 голос
/ 11 августа 2009

Насколько я знаю, UTF-8 разработан, чтобы охватить все эти более ранние варианты Unicode, так что да, было бы хорошо использовать его поверх UCS-2. См. http://www.unicode.org/versions/Unicode5.1.0/ и посмотрите на боковую панель для глав книги 5.0; части 9-12 должны быть тем, что вы ищете.

0 голосов
/ 11 августа 2009

Прекрасно работает с Деванагари.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...