Ссылка на графический элемент JavaFx Button

Получение права кодирования действительно сложно: слишком много слоев:

  • Браузер
  • Страница
  • PHP
  • MySQL

Команда SQL «SET CHARSET utf8» из PHP гарантирует, что клиентская сторона (PHP) получит данные в utf8, независимо от того, как они хранятся в базе данных. Конечно, они должны быть правильно сохранены.

Определение DDL и реальных данных

Кодировка, определенная для таблицы / столбца, на самом деле не означает, что данные находятся в этой кодировке , Если у вас есть таблица, определенная как utf8, но сохраненная как различная кодировка, тогда MySQL будет рассматривать их как utf8, и у вас проблемы. Это означает, что вам нужно сначала исправить это.

Что проверить

Вам нужно проверить, какая кодировка потока данных на каждом уровне.

  • Проверьте HTTP-заголовки, заголовки.
  • Проверьте, что действительно отправлено в теле запроса.
  • Не забывайте, что MySQL имеет кодировку почти везде: Таблицы базы данных Столбцы Сервер в целом Клиент Make что во всем есть правильный.

Конверсия

Если вы получаете данные, например. windows-1250 и хотите сохранить в utf-8, затем используйте этот SQL перед сохранением:

SET NAMES 'cp1250';

Если у вас есть данные в DB как windows-1250 и вы хотите вернуться utf8, используйте:

SET CHARSET 'utf8';

Последнее примечание:

Не используйте слишком «умные» инструменты для отображения данных. Например. phpMyAdmin делает (делал, когда я его использовал) кодирование действительно плохо. И он проходит через все слои, поэтому его трудно узнать. Кроме того, в Internet Explorer было действительно глупо поведение «угадывания» кодировки, основанной на странных правилах. Используйте простые редакторы, где вы можете переключать кодировку. Кроме того, я рекомендую MySQL Workbench.

0
задан briancollins081 18 January 2019 в 13:12
поделиться