MySQL UTF / Юникод советы по миграции - PullRequest
4 голосов
/ 06 сентября 2008

У кого-нибудь есть какие-то советы или хитрости, на которые нужно обратить внимание при попытке перенести таблицы MySQL из стандартных шведских кодировок, не учитывающих регистр, или ascii в utf-8? Некоторые из проектов, в которых я участвую, стремятся к лучшей интернационализации, и база данных станет важной частью этого изменения.

Прежде чем мы попытаемся изменить базу данных, мы собираемся преобразовать каждый сайт, чтобы использовать кодировку символов UTF-8 (от наименее критичного до большинства), чтобы гарантировать, что весь ввод / вывод использует один и тот же набор символов.

Спасибо за любую помощь

Ответы [ 5 ]

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

Некоторые подсказки:

  • Ваши столбцы CHAR и VARCHAR будут использовать до 3 раз больше дискового пространства. (Вы, вероятно, не получите много места на диске для шведских слов.)
  • Используйте SET NAMES utf8 перед чтением или записью в базу данных. Если вы этого не сделаете, вы получите частично искаженные символы.
1 голос
/ 16 сентября 2008

Остерегайтесь ограничений длины индекса. Если таблица структурирована, скажите:

Варчар (255) б варчар (255) клавиша ('a', 'b')

Вы собираетесь преодолеть ограничение в 1000 байт для длины ключа. 255 + 255 - это нормально, но 255 * 3 + 255 * 3 не сработает.

1 голос
/ 06 сентября 2008

Я собираюсь просмотреть следующие сайты / статьи, чтобы помочь найти ответ.

Абсолютный минимум каждый разработчик программного обеспечения Абсолютно, положительно должен знать о Unicode и наборах символов (без оправданий!)

FAQ по UTF-8 и Unicode

Эпизод Hanselminutes "Разбираем интернационализацию с Майклом Капланом"

И я также только что нашел очень тематическое сообщение от блога Дерека Сиверса @ O'Reilly ONLamp, когда писал это. Превращение данных MySQL в латинице 1 в utf8 utf-8

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

сопоставления не всегда благоприятны. Вы получите сопоставления umlats с версиями без umlatted, что не всегда правильно. Возможно, вы захотите пойти с / utf8_bin, но тогда все также будет чувствительно к регистру.

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

Ваши столбцы CHAR и VARCHAR будут использовать до 3 раз больше дискового пространства.

Только если они набиты латиницей-1 с порядковыми номерами> 128. В противном случае использование UTF-8 в расширенном пространстве минимально.

...