Проблема кодировки символов

0

Я знаю, что это звучит действительно глупо, но какую кодировку символов я должен использовать для чего-то похожего на 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є ---

  • 1
    Что не так с хорошим старым UTF-8?
  • 0
    На каком языке вы пытаетесь показать?
Показать ещё 2 комментария
Теги:
character-encoding
utf-8

5 ответов

2
Лучший ответ

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

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

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

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

<meta http-equiv="content-type" content="text/html; charset=utf-8" />
  • 0
    работает наполовину, я имею в виду, когда я использую операторы slect, но когда я вставляю то же значение, все уходит, и это показано
  • 0
    кстати, mysql_query ('SET NAMES utf8'); нужно использовать перед INSERT тоже, и если вы используете phpmyadmin, вы можете подтвердить, правильно ли он хранился в db или нет после вставки.
1

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

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

0

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

utf8_decode
utf8_encode
iconv
0

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

0

Просто сохраните его в UTF-8.

  • 0
    Но что не так с этой строкой? Я имею в виду, почему он не отображается должным образом, это что-то, представленное пользователем веб-сайта, поэтому я не знаю, что это на самом деле.
  • 0
    Невозможно сказать, не зная оригинальной кодировки. Кстати, если вы объясните причины желания что-то сделать, вы, скорее всего, получите ответ, который соответствует вашим потребностям.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню