Нужен ли мне дополнительный самолет?

Я думаю, что вопрос довольно прост, нужно ли мне все остальное в Unicode после базовой плоскости? Какие вещи включены и действительно ли это нужно? (и для каких целей?)

Благодарю.

4 ответа

Решение

Если вы собираетесь продавать что-либо в Китае, то стандарт GB 18030 является обязательным и требует символов, выходящих за рамки BMP (базовая многоязычная плоскость). Стандарт применяется, и для того, чтобы продавать его, вам необходимо пройти сертификацию GB 18030.

Есть также национальные стандарты в Японии и Гонконге, которые требуют символов вне BMP. Даже если эти стандарты не соблюдаются, как в Китае, их поддержка может дать вам преимущество.

Таким образом, простой ответ будет: вам нужны некоторые вещи там.

=== 2016 ===

Это было 7 лет назад. Теперь все говорят о смайликах. Ну, большинство смайликов выходят за рамки BMP:-)

Это зависит от того, контролируете ли вы свои данные или нет. Если вы используете данные Unicode от кого-либо, кроме вас, вы, как правило, должны предполагать, что они могут содержать дополнительные символы, что, в свою очередь, означает, что вам нужно иметь дело с 4-байтовыми UTF-8, UTF-16 суррогатными символами и так далее.

Вы должны стараться, если это вообще возможно, поддерживать все Unicode, включая дополнительные плоскости. В настоящее время в дополнительных плоскостях, таких как Мяо, живут живые языки. Другие живые языки будут добавлены в будущем, а некоторые языки в настоящее время нуждаются в дополнительной частной зоне использования. Тогда есть также то, что Михай Нита сказал в своем ответе.

MySQL, начиная с 5.5, также поддерживает дополнительные плоскости.

Лучше потратить немного времени на полную поддержку Unicode, чтобы в будущем у вас не было проблем, если вам это действительно нужно. И вы не знаете, кто будет использовать ваше программное обеспечение и какие сценарии они будут использовать в будущем. Теперь большинство движков рендеринга, GUI-инструментарий, браузеры, операционные системы и т. Д. Будут поддерживать это без проблем.

Хотя этот вопрос был задан несколько лет назад, я наткнулся на это в процессе поиска, и с тех пор все изменилось. В настоящее время я имею дело с проблемами, когда программисты либо предполагали, что не будет необходимости в дополнительной поддержке плоскости, либо она оставалась непроверенной.

Смотрите полный список таблиц символов.

Дополнительные символы в настоящее время содержат древние сценарии. Если у вас нет приложения, которое должно обрабатывать древние сценарии, такие как Kharoshthi, Old Persion и Cuneiform, то, вероятно, нет.

Я думаю, что вам придется иметь дело с этой проблемой, только если вы столкнулись с реализацией UTF-8 или UTF-16, которая не завершена. Некоторые реализации UTF-8 не поддерживают 4-байтовые символы, что является дополнительной плоскостью: символы выше U + 10000. MySQL приходит на ум.

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