Если данные, которые вы отправляете в браузер, становятся искаженными (moji-bake), вы получите мусорные символы. Кроме того, если вы укажете неправильный набор символов в заголовках META, ваш браузер будет некорректно отображать страницу, вызывая повторное запекание, иногда в случайных местах на странице.
При обработке наборов символов CJK вы должны обязательно использовать кодировку UTF8 на протяжении всего жизненного цикла вашей программы (хранение, извлечение, манипулирование данными в вашем коде, отображение в браузере и т. Д.) *
Что такое UTF8?
UTF8 обрабатывает двоичные потоки данных, а не строки. Это означает, что комбинации битов могут иметь переменную длину. Символы ASCII имеют фиксированную длину 8 битов, представляющих 1 байт, однако символы UTF8 могут состоять из 6 бит, 8 бит, 12 бит и т. Д. Таким образом, UTF8 склонен к тому, что японцы называют «моджибаке».
Как программист, от базы данных до кодовой базы к браузеру, вы должны попробовать и полностью использовать UTF8. Для электронной почты вы можете использовать UTF8, но вы, вероятно, обнаружите, что большинство почтовых серверов и клиентов все еще старые и используют мешанину из разных наборов символов (например, ISO9022X).
Настройки базы данных
Если вы являетесь пользователем mysql, убедитесь, что вы должны убедиться, что все соединения с БД используют UTF8, а все таблицы / поля используют UTF8. По умолчанию mysql использует латинские (шведские) наборы символов. Эти странные шведы любят свое чувство юмора !!
Проверка базы кода
По моему опыту, редакторы, такие как Notepad ++, Notepad2, UltraEdit, e и т. Д., Имеют проблемы с поддержкой UTF8. В основном они работают, но поскольку их разработчики сами не используют языки CJK, они не совершенны. Такие проблемы, как отключение BOM (Byte Order Mark), искажение вкладок, плохое преобразование набора символов и т. Д. ... все существующие проблемы.
Я настоятельно рекомендую использовать проверенный редактор UTF8, такой как Maruo. Это сделано японской компанией, но есть английская версия (и пробная версия) на http://www.hidemaru.interlink.or.jp/software/
Наконец, вам может понадобиться конвертировать ваши исходные файлы в UTF8. Особенно, если в самой кодовой базе содержатся строки языка CJK.
Манипулирующие строки
Любая строковая функция должна быть многобайтовой безопасной. Обратите внимание, я не сказал, двухбайтовый. UTF8 - это не двойной байт, а многобайтовый, в зависимости от общего количества битов, используемых для представления символа. В PHP вам нужно специально вызывать строковые функции MB. Ruby и другие языки имеют более прозрачную поддержку, но вам нужно проверить документацию на ваш вкус сервера приложений!
мета-теги
Проверьте google.co.jp или yahoo.co.jp для их заголовков META. Это сайты, которые знают, как правильно. В основном включите следующую мета-метку в документ
Обычно безопасно смешивать английские атрибуты типа документа HTML с вышеуказанным символом. Таким образом, добавление тега META выше, похоже, работает в документе HTML, который имеет:
E-mail
Это совершенно другая банка червей. UTF8 много работает, но многие старые японские клиенты используют ISO2022X чаще. Это не стоит освещать здесь.
Устранение неполадок UTF8
Если у вас есть надежный редактор UTF8, такой как Maruo, вы можете создавать статические страницы и решать ваши проблемы.
Надеюсь, это поможет