Тема: Ошибка кодировки.
Я записываю данные о пользователе в отдельный столбец mysql. Но если вводить кириллицу, то происходит сбой кодировки. Как это можно исправить?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум PHP-MyAdmin.RU → MySQL & phpMyAdmin → Ошибка кодировки.
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Я записываю данные о пользователе в отдельный столбец mysql. Но если вводить кириллицу, то происходит сбой кодировки. Как это можно исправить?
Но если вводить кириллицу, то происходит сбой кодировки.
Как именно вы записываете данные в таблицу? С помощью собственного скрипта или через phpMyAdmin?
Покажите как выглядит кириллица после записи в phpMyAdmin и на странице скрипта.
Выглядит так: Òåëåôîí
Записываю через скрипт: queryMysql("UPDATE profiles SET text='$text' where user='$user'"); (ну текст вводит юзер)
1) Страница должна иметь кодировку windows-1251.
2) Таблицы в базе данных должны иметь сравнение cp1251.
3) Не подключайте скрипты под root, обязательно создайте отдельного пользователя MySQL наделив его необходимыми привилегиями, за исключением тех, что находятся в разделе "Администрирование".
4) В скрипте, сразу после функции mysql_connect добавьте строку устанавливающую кодировку соединения с MySQL:
mysql_query('SET NAMES cp1251');1,2,3 пункт выполнил.
Скрипты подключены под администратора БД, наделенного GRANT ALL но это не помогло ![]()
Скрипты подключены под администратора БД, наделенного GRANT ALL но это не помогло
Не надо отмечать привилегии из раздела "Администирование" при создании пользователя в phpMyAdmin. GRANT ALL и root - это одно и то же.
4-ый пункт является важным. Найдите функцию mysql_connect.
Нет это тоже не помогло(
Нет это тоже не помогло(
Что именно?
4-ый пункт является важным. Найдите функцию mysql_connect.
Не надо отмечать привилегии из раздела "Администирование" при создании пользователя в phpMyAdmin. GRANT ALL и root - это одно и то же.
а на счет этого - я же не через phpmyadmin делаю... Надо там пользователя создать?
попытался изменить конфиги mysql, вычитал на одном из сайтов - тоже не помогло...
вообще не знаю что делать(
Запросы создания пользователя и выделение глобальных прав.
CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT ,
INSERT ,
UPDATE ,
DELETE ON * . * TO 'user_name'@'localhost';Не понимаю почему вы не хотите работать с MySQL через phpMyAdmin.
Не понимаю почему вы не хотите работать с MySQL через phpMyAdmin.
Для меня это пока сложно
Как нибудь в свободное время сяду, изучу и буду работать через него)
CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT ,
INSERT ,
UPDATE ,
DELETE ON * . * TO 'user_name'@'localhost';
Это через phpmyadmin вводить? или можно непосредственно?
Это через phpmyadmin вводить? или можно непосредственно?
Это можно вводить и в phpMyAdmin, только пропишите имя пользователя вместо user_name и пароль вместо password.
Создал пользователя, выделил глобальные права. Ничего не изменилось.
Создал пользователя, выделил глобальные права. Ничего не изменилось.
Скрипт теперь работает через нового пользователя? Заменили данные в функции подключения к MySQL?
да
да
Покажите ваш конфигурационный файл MySQL (my.ini).
[client]
port = 3306
socket = /tmp/mysql5.sock
default-character-set = cp1251
character-sets-dir = /usr/local/mysql-5.1/share/charsets
[mysqld]
# Кодировка баз данных по умолчанию.
default-character-set = cp1251
init-connect = "set names cp1251"
skip-character-set-client-handshake
tmpdir = /tmp
bind-address = 127.0.0.1
port = 3306
socket = /tmp/mysql5.sock
lower-case-table-names = 2
skip-locking
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[isamchk]
key_buffer = 8M
sort_buffer_size = 8M
[myisamchk]
key_buffer = 8M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout
Уберите эту строку, перезагрузите MySQL и все должно заработать.
skip-character-set-client-handshakeУберите эту строку, перезагрузите MySQL и все должно заработать.
skip-character-set-client-handshake
Нет, не заработало
Прямо беда какая-то...
Нет, не заработало
Как вы проверяете, что не работает? Попробуйте очистить таблицу и создать новую запись в нее с помощью скрипта.
Если не заработает, то вышлите скрипты и дамп БД на hanut@php-myadmin.ru
Отправил.
Ошибок нет, все работает. Страница на которой встраивается код из файла profile.php должна иметь мета тег кодировки.
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />Вручную поправьте строку в поле text таблицы profiles, где вместо кириллицы записаны сущности.
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум PHP-MyAdmin.RU → MySQL & phpMyAdmin → Ошибка кодировки.
Форум работает на PunBB, при поддержке Informer Technologies, Inc
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.