Проблема кодировки символов - PullRequest
0 голосов
/ 17 декабря 2009

Я знаю, это звучит очень глупо, но какую кодировку символов я должен использовать для чего-то, что выглядит в UTF-8

à ¿ï¿½ï¿½Ã ¢ � ¥ à ¼à �à ½à  ± ¼Ã Â

Сайт на английском языке. Это нечто, сгенерированное пользователем, которое хранится в базе данных utf_general_ci и отображается на экране. Я просто хочу отобразить это правильно. Что мне делать?

ОК, это то, что в оригинальном тексте было что-то вроде

I αm iиvisibłє łiкє αiя --- I αm αs imρøяŧαиŧ αs øxygєи --- I łm łiviig ii ŧЋє wøäłd øƒ myy däєαmz I αm αłwαys ŧЋєяє ŧø Ћєłρ øŧЋєяz --- Я занята, но я думаю, что я все еще Я м ŧЋє ø є є c c --- --- I łøvє ŧø sєє øŧЋєя łαugЋiиg Я є ø ø є є є є b b b ø z z z z z I м ŧЋє ø є є є z и и и и и и и є є є є є I αm łøsŧ ii myy ŧЋøugЋŧs --- Я łøvє ŧø ŧαłк --- Я łøvє ŧø sЋαяє --- Я все еще --- --- I łøvє ŧø ƒły buŧ døи’ŧ Ћαvє wiigs— Я хотел бы знать, что --- I αm єvił buŧ иøŧ dєvił --- Я ивєя ƒøłłøw αиy ŧяєиd --- I αm ƒuiłøviиg --- сумм єiмє łøvє ŧø bє αłøиє --- I łøvє ŧø łivє ---

Ответы [ 5 ]

2 голосов
/ 17 декабря 2009

Использование UTF-8 - это нормально, но вот несколько контрольных точек.

Если вы используете MySQL, установите параметры сортировки базы данных / таблиц / полей в utf8_unicode_ci

и если вы используете php, сделайте mysql_query('SET NAMES utf8'); перед запросом

и в выводе HTML используйте

<meta http-equiv="content-type" content="text/html; charset=utf-8" />
1 голос
/ 17 декабря 2009

Это может быть больше, чем проблема выбора набора символов для отображения. Эта строка, к сожалению, содержит много заменяющих символов ( ), что указывает на то, что она уже прошла процесс, в котором символы были потеряны, потому что входящая кодировка не была понята. Даже фрагмент «½», вероятно, является заменяющим символом в utf8, просматриваемом однобайтовой кодировкой.

Чтобы проверить качество информации в базе данных, можете ли вы добавить вывод скажем select charset(colname), hex(left(colname, 20)) к вопросу?

0 голосов
/ 18 декабря 2009

Вы можете использовать следующие функции преобразования для обработки utf:

utf8_decode
utf8_encode
iconv
0 голосов
/ 17 декабря 2009

Пользователи на вашем сайте могут вводить символы не в формате UTF-8, например, big-5 или JIS. Это проблема: вам нужно либо принудительно указать, что они вводят в UTF8, либо как-то определить набор символов, который они использовали, и затем преобразовать его в UTF8. У каждой локали есть набор символов по умолчанию - например, если пользователь говорит, что у него должен быть японский интерфейс, скорее всего, он использует что-то вроде JIS, и вы можете преобразовать JIS-> utf-8 по пути, и затем utf-8 к JIS на выходе. Если вы не можете конвертировать, просто убедитесь, что вы записали директиву utf-8 в метатег вашей страницы (если ваш интерфейс HTML), и убедитесь, что в вашу базу данных попадают только символы utf-8.

0 голосов
/ 17 декабря 2009

Просто держите его в UTF-8.

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