Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP + MySQL) кодировка при соединении / 11 сообщений из 11, страница 1 из 1
06.10.2013, 17:38
    #38418139
pahhan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP + MySQL) кодировка при соединении
всем привет
настраиваю автоцензор на пхпбб2 (давайте не будем о том что это старье, мне это не поможет)
результат: автоензор работает, но только с латиницей. Делаю вывод, что глючит кодировка
все таблицы в базе cp1251, сама база была latin1, поменял на cp1251, ничего не произошло

В phpmyadmin выполнил:

Код: plsql
1.
SHOW VARIABLES LIKE 'char%'



Получил

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
character_set_client - utf8
character_set_connection - utf8
character_set_database - cp1251
character_set_filesystem - binary
character_set_results - utf8
character_set_server - latin1
character_set_system - utf8
character_sets_dir - /usr/share/mysql/charsets/



Поменять эти настройки непосредственно в базе я не могу, поэтому вставил в файл после соединения с базой:

Код: php
1.
mysql_query('SET names cp1251', $this->db_connect_id);



и так

Код: php
1.
2.
3.
4.
$db_encoding = mysql_set_charset('cp1251', $this->db_connect_id);
$db_con = mysql_query("SET character_set_connection=cp1251", $this->db_connect_id);
$db_client = mysql_query("SET character_set_client=cp1251", $this->db_connect_id);
$db_res = mysql_query("SET character_set_results=cp1251", $this->db_connect_id);



Все равно те же проблемы

Далее попробовал выполнить

Код: plsql
1.
mysql_query("SET CHARACTER SET 'cp1251'", $this->db_connect_id);



Все что было написано до этого не поменялось, а новые посты стали сохраняться в таком виде:
???

Что это может быть? Помогите, я уже целый день бьюсь и не могу ничего сделать!
...
Рейтинг: 0 / 0
06.10.2013, 20:02
    #38418213
(PHP + MySQL) кодировка при соединении
pahhan
Код: php
1.
2.
3.
4.
$db_encoding = mysql_set_charset('cp1251', $this->db_connect_id);
$db_con = mysql_query("SET character_set_connection=cp1251", $this->db_connect_id);
$db_client = mysql_query("SET character_set_client=cp1251", $this->db_connect_id);
$db_res = mysql_query("SET character_set_results=cp1251", $this->db_connect_id);



заменить на

СуперПуперНовыйКод
Код: php
1.
2.
3.
4.
$db_encoding = mysql_set_charset('utf8', $this->db_connect_id);
$db_con = mysql_query("SET character_set_connection=utf8", $this->db_connect_id);
$db_client = mysql_query("SET character_set_client=utf8", $this->db_connect_id);
$db_res = mysql_query("SET character_set_results=utf8", $this->db_connect_id);
...
Рейтинг: 0 / 0
06.10.2013, 20:30
    #38418240
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP + MySQL) кодировка при соединении
Код: php
1.
"SET NAMES нужная_кодировка"

+ отрихтовать базу по необходимости.
...
Рейтинг: 0 / 0
06.10.2013, 22:54
    #38418313
pahhan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP + MySQL) кодировка при соединении
vkle, я пробовал set names, базу не могу отрихтовать, у меня нет прав
...
Рейтинг: 0 / 0
06.10.2013, 23:02
    #38418316
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP + MySQL) кодировка при соединении
Пиннуть администратора сайта - совсем не вариант?
Тады iconv юзать :-(
...
Рейтинг: 0 / 0
07.10.2013, 00:43
    #38418366
sxq
sxq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP + MySQL) кодировка при соединении
при смене кодировки в соединении с базой, вы изменили кодировку поступающей туда информации? например, кодировка страниц в браузере тоже стала 1251?
Все должно быть приведено к общему знаменателю
...
Рейтинг: 0 / 0
07.10.2013, 01:25
    #38418375
pahhan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP + MySQL) кодировка при соединении
кодировка в браузере уже была cp1251, прописана в хедере
я не знаю как оно правильно работало при таких настройках, тем не менее, отображалось все корректно, поиск работал, а вот автоцензор - нет.

Какие могут быть еще настройки? Я даже локаль уже настроил.

И кстати, как проверить кодировку connection, client result используя php? У меня что-то не выходит...
...
Рейтинг: 0 / 0
07.10.2013, 13:25
    #38418823
Electric200
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP + MySQL) кодировка при соединении
pahhan,
1. Кодировка Mysql сервер
2. Кодировка базы данных
3. Кодировка таблицы
4. Кодировка самих полей
5. Кодировка соединения
6. Кодировка сервера приложений
7. Кодировка клиента

Итого - 7 возможных ступенек изменения кодировки.
Все они должны соответствовать единой кодировке.
Откидывайте по пунктам.
Для начала в обход приложения, используйте какой то клиент mysql для удаленно подключения к базе данных. Например HeidiSQL. Я не знаю что он за "автоцензор" но допускаю, что выполняется какой то запрос LIKE '%кирилица% . настройте кодировку в клиенте и выполните там голые запросы. И посмотрите что вам вернется. Если там все ок - значит курите кодировку соединения и своего приложения. Чуде на свете не бывает.
...
Рейтинг: 0 / 0
07.10.2013, 13:49
    #38418863
pahhan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP + MySQL) кодировка при соединении
спасибо, я посмотрю как вы советовали через клиента
только у меня вопрос: насколько кодировка сервера может влиять на ситуацию? Ее точно изменить будет невозможно.

Кстати, через phpmyadmin запросы работают корректно, поиск по сайту через веб-интерфейс тоже, и только автоцензор не работает... Как такое может быть? Не может же он парсить уже готовую страницу?
...
Рейтинг: 0 / 0
07.10.2013, 15:13
    #38419000
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP + MySQL) кодировка при соединении
pahhanНе может же он парсить уже готовую страницу?Почему не может? Готовый текст без каких-либо привязок к БД. Все просто и независимо от внутренней структуры приложения... до тех порт пока аякс все не испортит.
...
Рейтинг: 0 / 0
07.10.2013, 15:33
    #38419037
pahhan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP + MySQL) кодировка при соединении
Мда, бред какой-то, пойду курить код автоцензора....
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP + MySQL) кодировка при соединении / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]