Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Неправильная кодировка русских символов в базе данных (https://forum.antichat.xyz/showthread.php?t=62993)

Ershik 28.02.2008 18:37

Неправильная кодировка русских символов в базе данных
 
У меня проблема c кодировкой, или mysql шалит либо еще что-то соседнее. Apache переставил на кодировку cp1251
При загрузке дампа с русскими символами, mysql изменяет все русские символы на ??????
Как это можно исправить?
Пробовал
$:
Код:

mysql set name cp1251
не помогло.

Sharky 28.02.2008 21:16

Цитата:

Сообщение от Ershik
У меня проблема c кодировкой, или mysql шалит либо еще что-то соседнее. Apache переставил на кодировку cp1251
При загрузке дампа с русскими символами, mysql изменяет все русские символы на ??????
Как это можно исправить?
Пробовал
$:
Код:

mysql set name cp1251
не помогло.

у меня кодировка базы стоит utf-8 а кодировка скриптов уже windows-1251

Helios 28.02.2008 21:54

У тебя, равно как и у всех, в конфиге по дефолту прописана кодировка latin-1.
Есть несколько вариантов исправить это дело:
1, самый простой: изменить /etc/my.cnf:
Код:

default-character-set = cp1251
2, самый рациональный: в начало дампа добавить строку
Код:

SET NAMES cp1251
Эта же команда должна(!) выполняться каждый раз после подключения движка сайта к базе данных, для стабильной работе движка при любых настройках мускула (дядьки, которые писали koobi об этом не подумали).

Дикс 29.02.2008 08:04

помогите разобраться с кодировкой.

через phpmyadmin вставляю дамп, предварительно приписав "SET NAMES cp1251" или "SET NAMES utf8" (толку никакого).
В скрипте, сразу после подключения выполняю запрос
mysql_query("SET NAMES utf8"); (или опять же cp1251)

Получаю на странице вместо русского текста -

2 Федор Сергеев
3 Василий Пустяков
4 Мария Соколова
5 Тест Юзер

.:EnoT:. 29.02.2008 08:10

точно такая же проблема была у меня с форумом mybb, решилось тем что в метах я прописал кодировку utf8, а таблицы в бд были в cp1251...

Дикс 29.02.2008 08:41

всё, проблема решилась :)
в скрипте было написано
mysql_query("SET NAMES cp-1251");
а кодировка пишется без тире.

Ershik 03.03.2008 17:40

У меня тоже проблема решилась.
В базе данных исправил кодировку cp1251 на utf8. Все заработало стабильно.

mr.The 03.03.2008 18:04

PHP код:

mysql_query("SET NAMES CP1251");
mysql_query("SET COLLATION_CONNECTION=CP1251_GENERAL_CI"); 

заюзать сразу после коннекта с БД.

GrisS 07.03.2008 00:27

Здраствуйте ребятя, родскажите пожалюсто где надо исправить или добавить charset штобы вопрос (загаловка) в Poll отабражалось правилно? сейчась видно примерно так :( &#4304&#4314&#4317&#4336&#4304

ещо в Топ статях заголовка отображается правилно а когда перехожу целиком на статю заголовка сново барахлит (Articles)

ещо в Speedbar тоже самое...

стоит последний релиз censored! спосибо заранее...

http://img78.imageshack.us/img78/3493/src016lc.jpg

DCRM 07.03.2008 01:38

Цитата:

Сообщение от Helios
самый рациональный: в начало дампа добавить строку
Код:

SET NAMES cp1251
Эта же команда должна(!) выполняться каждый раз после подключения движка сайта к базе данных, для стабильной работе движка при любых настройках мускула (дядьки, которые писали koobi об этом не подумали).

Это не всегда помогает((
Ещё можно для уверенности добавить при создании таблицы(к примеру):
Код:

create database $DB1 character set 'cp1251'
И на счёт настройки MySQL5...
Меня постоянно добивали "Русские символы" аля "?????"
Решилось с помощью правки my.ini

Код:

[mysql]
default-character-set=cp1251

[mysqld]
default-character-set=cp1251
character-set-server=cp1251
collation-server=cp1251_general_ci
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake

[mysqldump]
default-character-set=cp1251

+ если мускул ругается что не может найти кодировку, то допишем строчку:

Код:

[client]
character-sets-dir=x:/mysql/share/charsets/

P.S. Надеюсь не переборщил с атрибутами :)


Время: 16:45