HTML — кодировка символов не работает правильно с PHP, WordPress

На некоторых страницах моего сайта кодировка символов выглядит чистой, а на некоторых других страницах она не очень хорошая.

Например, это может выглядеть так: Flu¨e, вместо этого: Flüe.

Я работаю над WordPress, со своей собственной темой. Мой php документ установлен на <meta charset="<?php bloginfo( 'charset' ); ?>">, Я также пытался с <meta charset="UTF-8"> но это не решает проблему.

Вот заголовок моего файла header.php:

<head>

<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Temporary Gallery, Centre for contemporary art, Köln" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="dist/css/bootstrap-responsive-tabs.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<head>

1

Решение

Попытайтесь выяснить, что общего у плохо отображаемых строк — например, каков их общий источник — они берутся из разных текстовых файлов / баз данных / таблиц — что должно дать вам некоторые подсказки, где находится источник проблемы , PHP не преобразует текст автоматически, поэтому посмотрите, где он находится.

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

Некоторые вещи, которые вы можете исследовать, основываясь на моем личном опыте с этими типами проблем:

Прежде всего убедитесь, что ваш документ .php (сам файл) имеет правильную кодировку. Вы должны быть в состоянии установить его в своем текстовом редакторе или IDE. Это может произойти, если вы скопировали файлы из разных мест. Если у вас есть файлы, не закодированные в UTF-8, конвертируйте их.

Во-вторых, убедитесь, что данные, которые вы извлекаете в этот файл, выбираются с использованием кодировки UTF-8. Например, у вас может быть некоторый код, который выбирает данные из базы данных, в которой разные таблицы имеют разную кодировку, или текст преобразуется в другую кодировку, проверьте это для получения дополнительной информации: https://dev.mysql.com/doc/refman/5.7/en/cast-functions.html (дайте нам знать, если вы используете другую базу данных, такую ​​как Postgres). Вы можете попытаться напечатать строку, поступающую из базы данных сразу после ее возвращения — если она в порядке, но плохо отображается на странице, то, очевидно, после этого выполняется неправильное форматирование, и с базой данных все в порядке.

В-третьих, текст, сохраненный в ваших должным образом настроенных таблицах utf-8, может быть сохранен в неправильной кодировке — вам может потребоваться исправить это напрямую или проверить код, выполняющий сохранение в базе данных.

Сервер базы данных также может быть настроен для обработки результатов в другой кодировке, и вам может потребоваться настроить его правильно: Изменить набор символов MySQL по умолчанию на UTF-8 в my.cnf?

Другой вариант для вас, чтобы искать любые функции, которые имеют дело с преобразованием кодировок, таких как http://php.net/manual/en/function.utf8-encode.php — может случиться так, что что-то подобное происходит излишне, и это делается для текста, который уже находится в utf-8 или находится в другой кодировке, и вам нужна другая функция.

0

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

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

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