кроссплатформенная поддержка юникода - PullRequest
4 голосов
/ 02 сентября 2008

Я считаю, что получение поддержки Unicode в моих кроссплатформенных приложениях - настоящая боль в заднице.

Мне нужны строки, которые могут переходить из кода на C, в базу данных, в приложение Java и в модуль Perl. Каждый из них использует разные кодировки Unicode (UTF8, UTF16) или какую-то другую кодовую страницу. Самая большая вещь, которая мне нужна, - это кроссплатформенный способ выполнения конверсий.

Какие инструменты, библиотеки или методы используются людьми для облегчения работы с этими вещами?

Ответы [ 4 ]

3 голосов
/ 02 сентября 2008

Посмотрите на это: http://www.icu -project.org /

2 голосов
/ 05 сентября 2008

Perl имеет Кодирование в качестве стандартной библиотеки. Его можно использовать для чтения / записи любой кодировки, которую вы хотите, так что это не будет проблемой.

0 голосов
/ 19 апреля 2009

Ну, я думаю, iconv достаточно для ваших нужд. Iconv должен быть доступен по умолчанию в любой системе POSIX (включая (GNU /) Linux, * BSD, Mac OS X ...). В Windows AFAIK требуется отдельная библиотека, но:

  1. вы можете просто установить его / связать с вашим программным обеспечением / статически скомпилировать его. ( libiconv для Windows ). (Думаю, я бы порекомендовал связать это).
  2. Вы можете использовать некоторые собственные вызовы Windows в качестве особого случая.

Конечно, если вы используете Java, он имеет встроенную функцию - но я вижу, что это может быть не то, что вам нужно (вызовы JNI стоят дорого).

PS. Вы не можете установить perl для определенной кодировки?

0 голосов
/ 03 сентября 2008

Как вы делаете кросс-платформенные звонки? Это все вызывается из Java?

http://java.sun.com/docs/books/tutorial/i18n/text/string.html может быть полезно.

Я немного запутался в том, что именно ты пытаешься сделать. Является ли база данных по существу интерфейсом между всем кодом? Тогда это должно быть легко - просто создайте БД UTF-8, и каждому из клиентов потребуется выполнить свои собственные преобразования.

Звучит как интересная проблема, не могли бы вы поделиться более подробной информацией?

...