У меня очень странная проблема, которая не может понять. Я использую notepad ++, и если я сохраняю файл как .php с греческими символами (символы не из базы данных), он отображает греческие символы в качестве вопросительных знаков в веб-браузерах, но если я сохраню тот же файл символов, что и .html, он правильно отобразит символы.
если греческие символы отображаются в базе данных, они корректно отображают их без проблем. Также он работает некорректно на моем общем хостинге, но отлично работает на моем локальном хосте.
Я попытался сохранить файл .php в разных кодировках, но все равно такую же проблему. Я также попытался добавить php header () и метатеги с utf-8, но не повезло.
В чем может быть проблема? благодаря
Несмотря на то, что кажется очень странным, что ваши данные mysql выводятся корректно, если строки php не выполняются при кодировании, способ, которым я попытался решить вашу проблему, – это разбить проблему на шаги, пытаясь определить, где генерируется это miscoding!
Прежде всего, вы должны попробовать установить ваш default_charset
в utf-8
в файле php.ini, который выполняется следующим образом:
default_charset = "utf-8";
Если вы не можете этого сделать из-за ограничений поставщика, вы все равно сможете изменить значение во время выполнения с помощью функции ini_set !
Вы также захотите убедиться, что веб-сервер настроен для вывода файлов с кодировкой utf-8! В Apache это можно сделать как в httpd.conf, так и в файлах htaccess:
AddDefaultCharset UTF-8
На этом этапе, если все не удается, по-прежнему … попробуйте пойти с заголовками php и относительной кодировкой html:
<?php header("content-type: text/html;charset=utf-8") ?> <!doctype> <html> <head> <meta charset="utf-8"> </head> <body> <?php echo "α β γ δ ε ϝ ϛ ζ η θ ι κ λ μ ν ξ ο π ϟ ϙ ρ σ τ υ φ χ ψ ω ϡ" ?> </body> </html>
Очень важно, однако, что ваши файлы также сохраняются с использованием соответствующей кодировки (utf-8 почти всегда лучший выбор, это помогает предотвратить проблемы довольно много). Если вы сохранили файлы с кодировкой, отличной от utf-8, уничтожьте их, создайте новые из старого содержимого. Иногда редакторы на самом деле не могут правильно переключать кодировки после создания файла, хотя блокнот ++ обычно хорошо работает; просто используйте converto to
не encode in
функцию!
Если он все еще не работает, хотя я надеюсь, что он к настоящему времени, вы можете проверить некоторые другие альтернативы php, такие как mb_detect_encoding , mb_convert_encoding , htmlentities и htmlspecialchars , чтобы исправить эту проблему!