Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Boost.Locale: Recommendations and Myths

Boost , ,

Recommendations and Myths

Recommendations

  • Первая и самая важная рекомендация: предпочтите кодирование UTF-8 для узких строк — он представляет все поддерживаемые символы Unicode и более удобен для общего использования, чем кодирование, такое как Latin1.
  • Помните, что существует много разных культур. Вы можете очень мало говорить о языке пользователя. В его календаре может не быть «января». Может быть невозможно преобразовать строки в целые числа, используяatoi, потому что они могут вообще не использовать «обычные» цифры 0,9. Вы не можете предположить, что «космические» символы встречаются часто, потому что в китайском языке пространственный символ не разделяет слова. Текст может быть написан справа налево или сверху вниз и так далее.
  • Используя форматирование сообщений, постарайтесь предоставить как можно больше контекстной информации. Предпочитает перевод целых предложений на отдельные слова. При переводе словвсегдадобавляйте некоторую контекстную информацию.

Myths

To use Unicode in my application I should use wide strings everywhere.

Unicode не ограничивается широкими строками. И<std::string>, и<std::wstring>могут хранить и обрабатывать текст Unicode. Более того, семантика<std::string>намного чище в мультиплатформенных приложениях, поскольку все строки «Unicode» являются UTF-8. «Широкие» строки могут быть закодированы в «UTF-16» или «UTF-32», в зависимости от платформы, поэтому они могут быть даже менее удобными при работе с Unicode, чем<char>.

UTF-16 is the best encoding to work with.

Существует распространенное предположение, что UTF-16 является лучшим кодированием для хранения информации, поскольку он дает «короткое» представление строк.

На самом деле, это, вероятно, наиболее подверженное ошибкам кодирование для работы. Самой большой проблемой являются кодовые точки, которые лежат за пределами BMP, которые должны быть представлены суррогатными парами. Эти символы очень редки, и многие приложения не тестируются с ними.

Например:

  • Qt3 не может работать с персонажами за пределами BMP.
  • Редактирование символа с кодовой точкой выше 0xFFFF часто показывает неприятную ошибку: например, чтобы стереть такой символ в Windows Notepad, нужно дважды нажать заднее пространство.

Таким образом, UTF-16 может использоваться для Unicode, на самом деле ICU и многие другие приложения используют UTF-16 в качестве своего внутреннего представления Unicode, но вы должны быть очень осторожны и никогда не принимать однокодовую точку == один-utf16-символ.

Статья Boost.Locale: Recommendations and Myths раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-07-05 13:29:26/0.00382399559021/0