MySQL Русская кодировка.
Установил NetBSD 4.0.1
Поставил Apache-PHP-MySQL.
Страница в броузере с другого компа выводится вся в знаках вопросах.
Что надо сделать чтобы выводило по русски?
Спасибо!
»
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 2989 просмотра
Нифига непонятно чего-ты там
Нифига непонятно чего-ты там понаделал. Связка приблизительна такая: данные-mysql-соедининение php с mysql-передача данных клиенту от сервера-отображение в браузере клиента. Проверь на каждом этапе правильность работы с выбранной кодировкой. Или напиши сюда, люди подскажут.
Что тут
Что тут непонятно.
...............................
---php
header("Content-type: text/html; charset=windows-1251");
header("Content-Language: ru");
---php
[html][head]
[meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /]
[meta http-equiv="Content-Language" content="ru" /]
...............................
Текст который в файле выводится по русски
а все что из базы знаки вопроса.
???? ???? ????????? ??????????????
Ну а остальное? Collation в
Ну а остальное? Collation в mysql, установлены или нет encoding/charset или чего там еще при соединении конфигурится. Можеть у тебя в базе latin_swedish, откуда нам тут знать.
Вот мой
Вот мой my.cnf
[client]
#password = your_password
port = @MYSQL_TCP_PORT@
socket = @MYSQL_UNIX_ADDR@
[mysqld]
port = @MYSQL_TCP_PORT@
socket = @MYSQL_UNIX_ADDR@
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 = 64K
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[isamchk]
key_buffer = 8M
sort_buffer_size = 8M
[myisamchk]
key_buffer = 8M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout
Это не то. Вот статья
Это не то. Вот статья http://www.linux.by/wiki/index.php/FAQ_PHP_MySQL_charset
Обратить внимание на character set, collation - проверить их для своей базы и таблиц, и настройки соединения - как устанавливать нужно поискать.
Здравствуйте Viktor! Ссылки
Здравствуйте Viktor!
Ссылки не работают, никто толком помочь не может.
(я тоже это проходил)
Выхода из Вашего положения два:
1. Исключительно для PHP.
После соединения с Базой данных нужно выполнить следущие:
Соединение
mysql_connect(HST,USR,PSW);
и сразу вот вот это:
mysql_query("SET NAMES cp1251");
Это поможет, если Ваши данные попали в базу через Phpmyadmin (и др. может быть, не пробывал) с правильным, как товарищ говорил collation (cp1251_general_ci - для примера)
Mysql данные хранит в UTF и ему безразлично как настроен сервер.
Переменная collation_server может быть хоть китайская.
====================================
====================================
====================================
2. Можно настроить сам сервер, и не вставлять всегда в Ваши скрипты выше указанную строку.
Вот мой my.cnf для NetBSD v4.0.1
(только проверте ваши пути к файлам и возможно свои персональные настройки)
[client]
port = 3306
socket = /tmp/mysql.sock
character-sets-dir = /usr/pkg/share/mysql/charsets
init-connect = SET NAMES cp1251
default-character-set = cp1251
[mysqld]
port = 3306
socket = /tmp/mysql.sock
character-sets-dir = /usr/pkg/share/mysql/charsets
init-connect = SET NAMES cp1251
default-character-set = cp1251
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
skip-federated
log-bin = mysql-bin
server-id = 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
character-sets-dir = /usr/pkg/share/mysql/charsets
init-connect = SET NAMES cp1251
default-character-set = cp1251
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
=======================================================
перезапускаете /etc/rc.d/mysqld restart
И всё :)
Удачи Viktor!
P.S. Не хочу никого обидеть, но скажу.
Сайт www.runetbsd.ru задуман и поддерживается действительно любящей NetBSD командой.
Чем более подробные ответы мы даем людям, тем больше людей мы привлекаем к этой системе.
Не зачем гонять людей по ссылкам, как судья по статьям.
Можно на крайний случай скопировать и вставить.
В ссылке была точка в конце,
В ссылке была точка в конце, поэтому ссылка не работала.
А будет ли приведенное решение работать с юникодом?
Я раньше расстраивался, когда меня посылали курить конкретный man вместо конкретного решения моей проблемы, сейчас думаю, что это более правильно, потому как позволяет самому разобраться и учиться разбираться.
Я уже написал вверху, что проблема может быть в любом месте связки данные-mysql-соедининение php с mysql-передача данных клиенту от сервера-отображение в браузере клиента.
Думаю с Юникодм так работать
Думаю с Юникодм так работать не будет.
Я не пробывал, все русские сайты делаю win-1251
Пока не вижу необходимости переходить на UTF-8
Но я специалист по настройкам еще тот, с миру по нитке... :)
С чем сталкивался, как решал свои проблемы, о том тока и могу писать.
Необходимость работы с utf-8
Необходимость работы с utf-8 настала...
Если сервер настроен для cp1251
то для работы с utf-8 надо писать следущий запрос:
mysql_query("SET NAMES utf8");
Парни, все заработало!!! Всем
Парни, все заработало!!!
Всем большое спасибо!!!