Азиатские наборы символов, которые мы поддерживаем, включают китайский, японский, корейский, и тайский язык. Они
могут быть усложнены. Например, китайские наборы должны учесть тысячи различных символов. См. Раздел
10.1.14.7.1," cp932 Набор символов", для дополнительной
информации о cp932 и sjis наборы символов.
В MySQL, sjis набор символов соответствует Shift_JIS набор символов, определенный IANA, которое поддерживает JIS X0201 и JIS
символы X0208. (См. http://www.iana.org/assignments/character-sets.)
Однако, значение "JIS SHIFT" как
описательный термин стало очень неопределенным, и это часто включает расширения Shift_JIS
это определяется различными поставщиками.
Например, "JIS SHIFT", используемый в
японских средах Windows, является расширением Microsoft Shift_JIS и его точное
имя Microsoft Windows Codepage : 932 или cp932. В
дополнение к символам, поддерживаемым Shift_JIS, cp932 поддерживает символы расширения, такие как NEC специальные символы,
выбранный NEC — IBM расширенные символы, и IBM выбранные символы.
Много японских пользователей испытали проблемы, используя эти символы расширения. Эти проблемы происходят от
следующих факторов:
MySQL автоматически преобразовывает наборы символов.
Наборы символов преобразовываются, используя Unicode (ucs2).
sjis набор символов не поддерживает преобразование
этих символов расширения.
Есть несколько правил преобразования от так называемого "JIS SHIFT" к Unicode, и некоторые символы преобразовываются в
Unicode по-другому в зависимости от правила преобразования. MySQL поддерживает только одно из этих
правил (описал позже).
MySQL cp932 набор символов разрабатывается, чтобы решить эти проблемы.
Поскольку MySQL поддерживает преобразование набора символов, важно разделить IANA Shift_JIS
и cp932 в два различных набора символов, потому что они обеспечивают различные
правила преобразования.
Как делает cp932 отличайтесь от sjis?
cp932 набор символов отличается от sjis следующими
способами:
cp932 поддерживает NEC специальные символы,
выбранный NEC — IBM расширенные символы, и IBM выбранные символы.
Некоторые cp932 у символов есть две различных
кодовых точки, обе из которых преобразовывают в ту же самую кодовую точку Unicode. Преобразовывая из
Unicode назад к cp932, одна из кодовых точек должна быть выбрана. Для
этого "кругового преобразования"
используется правило, рекомендуемое Microsoft. (См. http://support.microsoft.com/kb/170559/EN-US/.)
Правило преобразования работает как это:
Если символ находится и в JIS X 0208 и в NEC специальные символы,
используйте кодовую точку JIS X 0208.
Если символ находится и в NEC специальные символы и в IBM выбранные
символы, используйте кодовую точку NEC специальные символы.
Если символ находится и в IBM выбранные символы и в выбранном NEC —
IBM, расширенные символы, используют кодовую точку IBM расширенные символы.
Таблица, показанная в http://www.microsoft.com/globaldev/reference/dbcs/932.htm,
предоставляет информацию о значениях Unicode cp932 символы. Для
cp932 записи таблицы с символами, под которыми четырехзначное число
появляется, число, представляют соответствующий Unicode (ucs2)
кодирование. Поскольку записи таблицы с подчеркнутым двухразрядным значением появляются, есть
диапазон cp932 символьные значения, которые начинаются с тех двух
цифр. Щелчок по такой записи таблицы берет Вас к странице, которая выводит на экран значение
Unicode для каждого из cp932 символы, которые начинаются с тех
цифр.
Ссылки особенно интересны. Они соответствуют кодировкам для следующих наборов символов:
cp932 поддерживает преобразование определяемых
пользователем символов в комбинации с eucjpms, и решает проблемы с
sjis/ujis преобразование. Для получения
дополнительной информации, пожалуйста, обратитесь к http://www.opengroup.or.jp/jvc/cde/sjis-euc-e.html.
Для некоторых символов, преобразования в и от ucs2 отличается для sjis и cp932. Следующие таблицы иллюстрируют эти
различия.