PDA

View Full Version : проблема с кодировкой


Stark
24.01.2007, 14:54
версия php-nuke 8.0 apache 2006-10-04 все скачено отсюда
Суть проблемы с кодировкой такова, при работе с модулями когда записываю в поле заголовок что либо на рускком языке отображаеться абракодабра, как я выяснил позже в кодировке западноевропейская(windows) если не ошибаюсь это win -1252. При написании в поле текст отображается нормально.
в базе (mysql)записываеться также абракодабра, если писать непосредственно в базе отображается нормально. Все компоненты базы cp-1251_general_ci.

Подскажите в чем проблема, почему запись в базу идет криво, нихочется ручником каждый раз в базе править.

А и еще, на английском все работает нормально.

Astrix
24.01.2007, 15:09
Попробуйте почитать тут: http://forum.mynuke.ru/showthread.php?t=346


А еще не помешало бы воспользосаться поиском. Похожие проблемы уже не раз обсуждались.

Stark
24.01.2007, 15:20
2 Astrix понимаеш то что обсуждалось в ссылке, там проблема была в кодеровке базы, а у меня в кодеровке базы все норм в том то и дело.
да блин хоть знать бы где копать толи база глючит, толи апач. Вроде настройки все облазил вдоль и поперек.

Astrix
24.01.2007, 15:28
У меня была подобная проблема. Но она несколько не похожа на эту. Я вообще не мог сменить язык Нюка. пришлось языковые файлы переименовывать.

Оказалось, надо просто куки почистить.

А с вопросами - аналогичная проблема была. Я ее кстати тоже не решил.

Но есть мысль. Глянь исходный текст странички. Посмотри мета-теги, какая там кодировка стоит. Вот я готовый скрипт заливал - тама вообще в русском language кодировка не прописана и в тексте странички красуется

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=_CHARSET">

Вот так вот. Пока больше ничего умного в голову не приходит.

Stark
24.01.2007, 15:34
я тоже на это грешил, первое что в голову пришло. видиш в чем дело в базе запись тоже с левой кодировкой. или ты имееш виду что браузер криво обрабатывает и из-за этого запись в базу идет с другой кодировкой?

Astrix
24.01.2007, 16:01
Возможно. Но я не уверен. Я еще недостаточно хорошо знаю движок PHP-Nuke, чтобы что-то утверждать. Но мало ли.

Astrix
24.01.2007, 17:54
вот. вчера все нормально было. а седня денвер запустил, а у меня все русские названия и текст стали вопросами. хотя буквально вчера все нормально было. что-то неладное творится. и самое главное - я никак не пойму, в чем же дело.

16:54
Нашел причину. Дело в MySQL, а точнее в ее конфиге.

Вот кусок конфига моего MySQL 5 (в 4-ой версии с кодировками и отображением страниц проблем не было). В 5-й такая же ошибка, как и у тебя - все русские символы из базы превращаются в вопросы.

# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 256M
max_allowed_packet = 1M
table_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8

А вот решение:
После [client] добавляем:

default-character-set = cp1251
character-sets-dir = /usr/local/mysql5/share/charsets

После [mysqld]:
default-character-set = cp1251
init-connect = "set names cp1251"

Все. После такой модификации проблемы с вопросами не возникает. (не забудь перезапустить MySQL)

Stark
25.01.2007, 13:58
блин я уже обрадовался, но к сожалению все в конфе уже и так было, видимо не в этом дело :(
но всеравно спасибо.