Я знаю, что это звучит действительно глупо, но какую кодировку символов я должен использовать для чего-то похожего на UTF-8
à ¢ ��à ¢ � ¥ à ¼à �à ½à  ± à ¼à Â
Веб-сайт находится на английском языке. Это содержимое, созданное пользователем, которое хранится в базе данных utf_general_ci и отображается на экране. Я просто хочу отобразить его правильно. Что мне делать?
ОК, это то, что исходный текст был чем-то вроде
I αм iиvisibłє łiкє αiя --- I αм αs iмρøяŧαиŧ αs øxygєи --- I αм łiviиg iи ŧЋє wøäłd øƒ мy dяєαмz I αм αłwαys ŧЋєяє ŧø Ћєłρ øŧЋєяz --- I αм занят buŧ иєvєя igиøяє αиy øиє I αм ŧЋє øиє wЋø cαяєz --- I łøvє ŧø sєє øŧЋєя łαugЋiиg I αм ŧЋє øиє wЋø bøяяøw øŧЋєяz søяяøw I αм ŧЋє øиє wЋøz иαugЋŧy buŧ иicє I αм łøsŧ iи мy ŧЋøugЋŧs --- I łøvє ŧø ŧαłk --- I łøvє ŧø sЋαяє --- I αм яєαdy ŧø gø αиy wЋєяє --- I łøvє ŧø ƒły buŧ døиŧ Ћαvє wiиgs- Я wαиŧ ŧøø ŧøucЋ ŧЋє sкy łiмiŧs --- I αм єvił buŧ иøŧ dєvił --- I иєvєя ƒøłłøw αиy ŧяєиd --- I αм ƒuиłøviиg --- suм ŧiмє łøvє ŧø bє αłøиє --- I łøvє ŧø łivє ---
Использование UTF-8 просто отлично, но здесь мало контрольных точек.
Если вы используете MySQL, задайте сопоставление базы данных/таблиц/полей в utf8_unicode_ci
и если вы используете php, выполните mysql_query('SET NAMES utf8');
перед запросом
и в выводе HTML используйте
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
Это может быть больше, чем проблема выбора набора символов дисплея. У этой строки, к сожалению, много замещающих символов (), что указывает на то, что она уже прошла процесс, когда символы были потеряны, потому что входящая кодировка не была понята. Даже фрагмент "�", вероятно, является замещающим символом в utf8, просматриваемом с помощью однобайтового кодирования.
Чтобы проверить качество информации в базе данных, можете ли вы добавить вывод say select charset(colname), hex(left(colname, 20))
к вопросу?
Вы можете использовать следующие функции преобразования для utf-обработки:
utf8_decode
utf8_encode
iconv
Пользователи на вашем сайте могут вводить символы в не-UTF-8, такие как big-5 или JIS. Это проблема: вам нужно либо ввести в действие, что они входят в UTF8, либо каким-то образом определить набор символов, который они использовали, а затем преобразовать в UTF8. Каждый языковой стандарт имеет набор символов по умолчанию - например, если пользователь говорит вам, что у них должен быть японский интерфейс, вероятно, они используют что-то вроде JIS, и вы, возможно, сможете конвертировать JIS- > utf-8 по пути, а затем utf-8 в JIS на выходе. Если вы не можете конвертировать, просто убедитесь, что вы пишете директиву utf-8 в метатеге страницы (если ваш интерфейс является HTML), и убедитесь, что только символы utf-8 попадают в вашу базу данных.
Просто сохраните его в UTF-8.