LinuxForum.Fans
Тема

Вёб сервер, кодировки....

Автор: DarkDigger 4 сообщений 1160 просмотров
#280700

Машина: Centos 6.2 64bit. Установлена mysql, в ней есть база, а в ней таблица с русскими буквами. Точнее должны быть русские буквы, а выглядите это так:
select * from `text`;
|
| 6 | Видео наблюдение | <span class="z">Монтаж систем видеонаблюдения</span><br>
<img src="foto/foto4.jpg" width="250" height="188" align="left" style="margin:0 10px 0 0">
<span class="z3">О</span>хранные системы и системы видеонаблюдения - это неотъемлемая
часть
политики безопасности большинства современных офисных и торговых центров, производственных
предприятий и складов, магазинов и банков. Кроме того всё чаще и чаÑ

В phpmyadmin отображается так же криво:

А через форму сайта всё замечательно:


дело в том что прога mysqldump тоже дампит крякозябры...

Но! Если изменить данные в таблице через phpmyadmin или через консоль, то всё отображается норм...В консоле и phpmyadmin , а вот на страничке появляются за место букв ?????????

На сайте стоит в заголовке
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
В mysql кусок конфига:
[client]
#password = your_password
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set = utf8

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
default-character-set = utf8


Что делать???

#280704
DarkDigger написал:

Что делать???

Операционная система, как и версии СУБД и вебсервера (если они не из прошлого века) значения не имеют.

  • Выкинуть раз и навсегда META и не вспоминать больше никогда. Вычистить все шаблоны
  • Проверить в httpd.conf что отсутствует кодировка по умолчанию или в крайнем случае стоит utf-8
  • Привести все текстовые файлы, шаблоны и инклюды PHP (или что там у Вас) строго к UTF-8. Есть на это enca, да и любой редактор приличный, если руками, та же Kate
  • Задать БД кодировку по умолчанию utf-8 general_c Хотите в phpMyAdmin, хотите руками

Это единственная здравая конфигурация сайта, вебсервера и СУБД, остальные - неправильные.

#280834

На сервере mysql кодировки вроде норм заданы:

text

mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |

Все текстовые файлы (сценарии php, файлы html, css и так далее) в кодировке utf-8 без bom...
Почему же один сайт (phpmyadmin) отображает тоже самое что черз консоль, а сайт работает сам по себе....

#280839

Всё нормально стало работать, когда в php скриптах, сразу после соединения с базой данных сделать запрос
$rquery=mysqli_query($db,'set names utf8');
Интересно, где поменялась кодировка с юникода на что-то другое?? Я думаю надо курить php.ini, сто пудова это пых... Никто не сталкивался?

Войдите или зарегистрируйтесь, чтобы ответить.