Вопросы вместо русских букв

191
16 августа 2017, 20:03

Здравствуйте.

Начал переводить сайт на русский, но возникла проблема - вопросы вместо русских букв стало показывать. Проблема связана, думаю, с mysql, так как внутри сайта вопросы появляются вместо букв, только когда с базы данные. В базе поставил utf-8_bin, тоже не помогло. В чем может быть проблема?

Answer 1

1) для Apache в .htaccess:

AddDefaultCharset utf-8

2) для nginx в конфиге:

charset utf8;

3) в html-документе:

<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

html 5 версия:

<meta charset="UTF-8">

4) необходимо все сущности (таблицы) установить в кодировку utf8_general_ci

5) если используете PDO:

new \PDO(
    'mysql:
    host=localhost;
    dbname=db;
    charset=utf8;',
    'user',
    'pass'
)

6) если всё ещё пользуетесь процедурным доступом к БД, то:

mysql_query('SET NAMES "utf8"');

7) в Вашем редакторе/IDE сохраняйте файл в кодировке utf8

Answer 2

Если не разберетесь с кодировкой из базы, то можете на невысоконагруженном проекте, например, конвертировать iconv налету все переменные.

Обновление

$out=iconv( mb_detect_encoding($in), 'UTF-8', $in)

где-то как-то так:

$in - строка в любой кодировке
$out - строка в utf-8

READ ALSO
Перехват html, генерируемого web-сервером перед отправкой

Перехват html, генерируемого web-сервером перед отправкой

Здравствуйте! Есть сервер на Linux - RubyonRails + Passenger + NginxПодскажите, пожалуйста, как можно перехватить html, генерируемый сервером, и модифицировать...

152