Какой порядок сортировки следует использовать для хранения иностранных символов в таблице?

0

Я использую google translate с моим сайтом для перевода коротких, часто используемых фраз. Вместо того, чтобы каждый раз просить google для перевода, я думал о кэшировании переводов в таблице MySQL.

В любом случае, он отлично работает для латинских символов, но не подходит для других, таких как азиат. Какую сортировку/кодировку лучше всего использовать?

Также - я пробовал по умолчанию (latin1_swedish_ci) и utf8_unicode_ci

Теги:
character-encoding

2 ответа

2
Лучший ответ

Один из них должен сделать трюк: http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html

Также, как видно из документации MySQL:

Клиентские приложения, которые должны общаться с сервером, используя Юникод должен установить клиент набор символов соответственно; для например, путем выдачи SET NAMES 'utf8'утверждение.

Итак, если вы выберете кодировку utf8_unicode_ci, вам нужно будет выполнить запрос SET NAMES 'utf8' для каждого подключения к вашей базе данных (запустите его после mysql_select_db() или того, что вы используете).

  • 0
    О, я пробовал ucs2 и utf8, но они не работают. Вероятно, это PHP или запрос, который теряет символы, или, возможно, он просто не поддерживает экзотические языки, на которых я его тестирую. Я думаю, что я буду относиться к переводам как к двоичным данным, и base64encode их или что-то.
  • 0
    Да, вам также нужно установить его для подключения. Я редактировал.
Показать ещё 2 комментария
1

Сопоставление не имеет ничего общего с международными символами. Charset делает.
Обычным решением является utf8.

Не знаю, что значит "я пробовал utf8_unicode_ci", но, по крайней мере, вы должны сообщить базе данных, что кодирует ваши данные. SET NAMES utf8 запрос может это сделать, если ваши данные из Google используют эту кодировку

Ещё вопросы

Сообщество Overcoder
Наверх
Меню