2016-01-20 4 views
1

Я должен создать сайт для клиентов с содержанием на словацком языке (это означает, что он содержит специальные символы , такие как č, č, ó, ď, ť и т. Д.). Я использую базу данных MySQL с кодирование данных utf8_general_ci. Эти данные извлекаются PHP , который генерирует HTML-код и заполняет его этими текстовыми данными, полученными из базы данных. Я использовал:HTML-код для кодирования символов HTML-кода

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> в голове генерируемой HTML,

модифицированные php.ini, используя шаги, указанные here,

в PHP скрипт сам называется header('Content-Type: text/html; charset=utf-8'). Результат состоит в том, что все специальные символы: отображаются как вопросительные знаки.

Есть ли какой-либо конечный список шагов для обеспечения того, чтобы все отображалось правильно?

EDIT:

Как я нашел решение уже, я хотел бы разделить шаги, которые помогли мне справиться с сайта UTF-8, если кто-то изо всех сил тоже.

1.) Измените php.ini, используя шаги, упомянутые в this лучший ответ статьи.

2.) В начале ответственного вызова php-скрипта header('Content-Type: text/html; charset=utf-8');.

3.) Перед выполнением любого запроса вызовите mysqli_query($con,"SET NAMES utf8"); (я вызываю его один раз в верхней части скрипта сразу после настройки соединения $con).

4.) Место <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> в голове вашего HTML-кода.

5.) Измените сопоставление базы данных на любой тип utf8 (я упомянул utf8_general_ci, как я уже упоминал).

Надеюсь, это поможет.

+0

Вы пробовали штриховые окна-1250? Иногда это помогает. –

ответ

0

Я нашел аналогичную должность here

  1. Убедитесь, что кодировка базы данных/coallition является UTF-8
  2. На странице вы вставить эти русские символы (форма, текстовое поле), убедитесь, что кодировка UTF-8, установив Content-Type на text/html; charset=utf-8. Введите текст на русском языке непосредственно на вкладку формы.
  3. На странице обработки, которая обрабатывает эту форму, которая вставляет ее в базу данных, обязательно сделайте SET NAMES utf8, поэтому она хранится как UTF-8 до. Вы вставляете данные в отдельный запрос заранее.
  4. При визуализации содержимого из базы данных в представлении убедитесь, что Content-Type - text/html; charset=utf-8.

Убедитесь, что тип содержимого является не окна-1251 или ISO-8859-1/latin1. Убедитесь, что кодировка/коллизия базы данных не является ISO-8859-1/Latin1.

+0

Это словацкий, а не русский. Но SET NAMES спас меня, большое спасибо. –

0

Убедитесь, что ваши данные правильно закодированы как UTF8 - запросите его с помощью терминала/приложения с поддержкой UTF8 и убедитесь, что вы правильно видите символы с акцентом. Если нет, вам нужно будет проверить свои входные формы для правильной установки кодировки данных. Используйте <form accept-charset="utf-8">, но не полагайтесь на него - проверьте и конвертируйте при необходимости на бэкэнд.

Также убедитесь, что все ваши файлы также закодированы как UTF8: файлы php, шаблоны, javascript, html-виджеты.

Смежные вопросы