Какая база данных и язык лучше подходят для работы с Unicode? - PullRequest
7 голосов
/ 23 апреля 2010

какую базу данных мне следует использовать, если мое приложение будет на нескольких языках (включая китайский, японский и т. Д.)? Другими словами, лучше или хуже MySQL, чем Postgres, для обработки юникода и т. Д.? (это только две базы данных, которые есть у моей хостинговой компании)

Кроме того, какой язык лучше подходит для работы с юникодом? PHP или Ruby / Rails?

Ответы [ 4 ]

7 голосов
/ 23 апреля 2010

Mysql не полностью поддерживает Unicode (например, китайские иероглифы вне BMP) ( см. ). Он использует искаженную кодировку ' utf8 ' (не совсем UTF-8).

Postgresql , кажется, полностью поддерживает кодировку UTF-8 (следовательно, для всех символов Юникода).

1 голос
/ 23 апреля 2010

Базы данных:

По моему опыту, и MySQL, и Postgres обрабатывали Unicode вполне нормально.

Языки:

  • PHP <= 5.3 несколько ограничен в отношении юникода, в то время как следующий PHP 6 обещает это исправить. </li>
  • В Ruby 1.8 была плохая поддержка юникода, но, как говорят, 1.9 прекрасно обрабатывает юникод (у меня нет собственного опыта).

Ограничения PHP 5.3:

Можно использовать PHP 5 вместе с юникодом, но тогда нужно быть осторожным со строками.Многие строковые функции, например та, которая считает длину символов, возвращает количество байтов, а не количество символов.Однако существуют дополнительные функции, которые возвращают количество символов.

Если это новый проект, вы сможете использовать правильные функции с самого начала.

Для нашего существующего проекта PHP я решил оставить его там, где он был (Windows 1252),из-за того, что это внутренний проект и ограниченное значение для юникода (к сожалению, я действительно люблю юникод).

0 голосов
/ 19 июля 2011

Postgresql + PHP6 - хороший выбор

0 голосов
/ 03 мая 2010

В моих случаях Postgresql был лучше, чем MySQL, MySQL не полностью поддерживает Unicode

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