Intereting Posts

Греческая кодировка символов работает в HTML, но не в PHP

У меня очень странная проблема, которая не может понять. Я использую 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 , чтобы исправить эту проблему!