Неправильная кодировка русского, португальского и т. Д. Текста

У меня есть таблица, где я храню некоторые текстовые метки. Первоначально он был построен с использованием параметров сортировки latin_swedish_ci (по умолчанию).

Теперь мне нужно поддерживать дополнительные языки, например русский. У меня есть две страницы, которые используют эти ярлыки. Один показывает их хорошо, несмотря на тот факт, что таблица все еще с латинской сортировкой и НЕ utf8_generic_ci, однако на другой странице все еще отображается мусор. Когда я смотрю на источник, он выглядит так:

\ U00d0 \ u00a4 \ u00d0 \ u00b8 \ u00d0 \ u00bb \ u00d1 \ u0152 \ u00d1 \ u201a \ u00d1 \ u20ac \

Обе страницы имеют:

 <META http-equiv="Content-type" content="text/html;charset=UTF-8">

Что мне не хватает?


ОБНОВИТЬ:

Я не знаю почему и как это работает, но в итоге я добавил следующее перед вставкой / обновлением моего запроса и перед рендерингом на странице, и это исправило все мои проблемы:

mysql_query("SET NAMES utf8");

Если вы слишком много времени потратили на попытки создания мета-тегов и заголовков, попробуйте это решение.

1

Решение

Делать не использовать mysql_* интерфейс; переключиться на mysqli_*,

Вы, вероятно, хотели что-то вроде Фил...?

Вероятно, есть два неправильных, чтобы получить этот беспорядок.

meta тег хорош; SET NAMES utf8 нужно.

Но, вероятно, вы сохранили мусор в таблице. Итак, давайте посмотрим на таблицу: SELECT col, hex(col) FROM tbl...

За Фил, вы должны увидеть гекс D0A4D0B8D0BB, Если ты видишь C390C2A4C390C2B8C390C2BB, у вас есть «двойное кодирование». Вместо этого кажется, что каким-то образом вы получили «unicode» вместо «utf8», и, возможно, из «latin1», с которого вы начали. Обратите внимание, как D0 A4 D0 B8 D0 BB появляется в моем гексе и в вашем \u00d0...?

Если вы можете начать все сначала, сделайте так:

  • кодировка utf8 в клиенте
  • SET NAMES utf8
  • CHARACTER SET utf8 на столбце / таблице
  • <meta charset=UTF-8>

Если вы не можете начать все сначала, давайте посмотрим, что SELECT Я попросил; может быть Я могу найти способ спасти ваши данные.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector