UTF-8 - непостоянная хозяйка. Для типичного веб-приложения вы должны установить UTF-8 на многих уровнях. Даже если код phpMyAdmin хорошо работает с UTF8, он не работает в вакууме: важна конфигурация сервера. Так же как и база данных, и источник данных для базы данных. Давайте суммируем области потенциального трения в общем приложении с особым акцентом на областях, представляющих интерес для phpMyAdmin.
А. Источник данных
Когда данные импортируются в базу данных, например, из текстового файла, они должны иметь правильную кодировку. Диакритические знаки могут отображаться в Excel, но кодировка может быть любой. Таким образом, вы можете иметь CSV-файл, который выглядит правильно, но не импортируется должным образом. Вы можете проверить и преобразовать кодировку вашего CSV-файла в текстовом редакторе, таком как EditPad, или в IDE, например, Komodo. В Notepad++, который есть у многих людей, вы можете выбрать "Кодировка", чтобы увидеть текущую кодировку, а также выбрать «Кодировка / Преобразовать в UTF8», если это необходимо.
Б. В вашей базе данных. Набор символов таблицы и параметры сортировки должны быть установлены в UTF-8. Похоже, вы, возможно, уже сделали это.
Если нет, вам нужно что-то вроде:
ALTER TABLE MyTable
DEFAULT CHARACTER SET utf8,
COLLATE utf8_general_ci;
Это общая настройка, но ваш румынский сборник тоже должен работать.
C. Подключение к базе данных. Вам нужно что-то вроде:
$connectDSN = "mysql:host={$db_host};dbname={$db_name};charset=UTF-8";
PhpMyAdmin должен подключиться правильно. На целевой странице вы должны увидеть
Server charset: UTF-8 Unicode (utf8)
Если нет, продолжайте читать.
D. php должен обрабатывать UTF8. В php.ini вам нужно что-то вроде:
default_charset = UTF-8
mbstring.language = Neutral
mbstring.internal_encoding = UTF-8
mbstring.encoding_translation = On
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.detect_order = auto
mbstring.substitute_character = “0xFFFD”
Вы можете проверить настройки вашего сервера с помощью phpinfo(). На общедоступном хосте у вас обычно нет доступа к php.ini, и вам нужно изменить настройки непосредственно в скрипте.
Кстати, не забывайте использовать функции mb.
E. настройка заголовка
Чтобы браузер знал, что он получает, он должен получить заголовок, такой как следующий, отправленный php:
<?php header('Content-type: text/html; charset=UTF-8'); ?>
Это не должно быть проблемой с phpMyAdmin.
В Firefox, используя расширение для веб-разработчиков, вы можете перейти в Информация / Просмотр информации о странице. На вкладке Общие это покажет вам кодировку.
F. HTML метатег
Это рекомендуется, чтобы помочь браузеру.
<meta charset="UTF-8">
Это не должно быть проблемой с phpMyAdmin.
Снова проверьте в браузере, какую кодировку он видит.
Г. Шрифт
Браузер может не иметь шрифта для отображения некоторых символов, хотя современные версии довольно хороши в отношении резервных шрифтов. Это, вероятно, не проблема в вашем случае.
Так что есть много мест, где все может пойти не так.
Надеюсь, что это поможет вам определить проблему!
Когда все выстраивается, тогда магия ... Вы получаете UTF8 везде.
И не забывайте:
ಬಾ ಇಲ್ಲಿ ಸಂಭವಿಸು ಇಂದೆನ್ನ ಹೃದಯದಲಿ
ನಿತ್ಯವೂ ಅವತರಿಪ ಸತ್ಯಾವತಾರ