Вопрос

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

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

Похоже, интересная проблема, не могли бы вы поделиться более подробной информацией?

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top