The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"MySQL 4.1 и кодировки"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии
Изначальное сообщение [ Отслеживать ]

"MySQL 4.1 и кодировки"  +/
Сообщение от Dip email on 22-Дек-05, 10:50 
FreeBSD 5.4, MySQL 4.1 и phpMyAdmin из портов. Не могу правильно настроить кодировку. Все вроде выставил в cp1251, но phpMyAdmin показывает в системных переменных character set system = utf8. Сам MyAdmin работает корректно, в консоль на mysql отдается вроде в cp1251 (это на глаз, не перекодировал), но отображается на экране в кои8, то есть нечитаемо. А в PHP вебприложение отдается в виде вопросов ????. Как лечить? И как обеспечить совместимость разрабатываемого приложения со старыми MySQL?
Спасибо!
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "MySQL 4.1 и кодировки"  +/
Сообщение от mephius email(ok) on 22-Дек-05, 12:00 
>FreeBSD 5.4, MySQL 4.1 и phpMyAdmin из портов. Не могу правильно настроить
>кодировку. Все вроде выставил в cp1251, но phpMyAdmin показывает в системных
>переменных character set system = utf8. Сам MyAdmin работает корректно, в
>консоль на mysql отдается вроде в cp1251 (это на глаз, не
>перекодировал), но отображается на экране в кои8, то есть нечитаемо. А
>в PHP вебприложение отдается в виде вопросов ????. Как лечить? И
>как обеспечить совместимость разрабатываемого приложения со старыми MySQL?
>Спасибо!


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

Если кто нашел другое решение, скажите, плз.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "MySQL 4.1 и кодировки"  +/
Сообщение от Dip email on 22-Дек-05, 12:22 
Я проблему не решил, вникать сейчас некогда, просто откатился на MySQL 3.23 - мне для разработки вебприложений его впринципе хватает. Но нерешенные проблемы не люблю, так что как будет время - займусь. Если кто подтолкнет в нужном направлении - буду благодарен.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "MySQL 4.1 и кодировки"  +/
Сообщение от Аноним email on 09-Янв-06, 10:38 
>Я проблему не решил, вникать сейчас некогда, просто откатился на MySQL 3.23
>- мне для разработки вебприложений его впринципе хватает. Но нерешенные проблемы
>не люблю, так что как будет время - займусь. Если кто
>подтолкнет в нужном направлении - буду благодарен.

[mysqld]
init-connect='SET NAMES cp1251'

вроде так.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

8. "MySQL 4.1 и кодировки"  +/
Сообщение от Юра (??) on 27-Мрт-06, 10:50 
>>Я проблему не решил, вникать сейчас некогда, просто откатился на MySQL 3.23
>>- мне для разработки вебприложений его впринципе хватает. Но нерешенные проблемы
>>не люблю, так что как будет время - займусь. Если кто
>>подтолкнет в нужном направлении - буду благодарен.
>
>[mysqld]
>init-connect='SET NAMES cp1251'
>
>вроде так.

Спасибо.. очень помогло. данная проблема существует не только в 4.1 но и в 5.0.18..
PHP код переписывать не хотелось..


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

4. "MySQL 4.1 и кодировки"  +/
Сообщение от Игорь email(??) on 19-Фев-06, 12:44 
>FreeBSD 5.4, MySQL 4.1 и phpMyAdmin из портов. Не могу правильно настроить
>кодировку. Все вроде выставил в cp1251, но phpMyAdmin показывает в системных
>переменных character set system = utf8. Сам MyAdmin работает корректно, в
>консоль на mysql отдается вроде в cp1251 (это на глаз, не
>перекодировал), но отображается на экране в кои8, то есть нечитаемо. А
>в PHP вебприложение отдается в виде вопросов ????. Как лечить? И
>как обеспечить совместимость разрабатываемого приложения со старыми MySQL?
>Спасибо!


Только что решил проблему следующим образом: в PHP скрипте поставил  mysql_query("SET NAMES cp1251");

(хостинг находится на Яхоо)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "MySQL 4.1 и кодировки"  +/
Сообщение от Vadq email(??) on 24-Мрт-06, 14:04 
>>FreeBSD 5.4, MySQL 4.1 и phpMyAdmin из портов. Не могу правильно настроить
>>кодировку. Все вроде выставил в cp1251, но phpMyAdmin показывает в системных
>>переменных character set system = utf8. Сам MyAdmin работает корректно, в
>>консоль на mysql отдается вроде в cp1251 (это на глаз, не
>>перекодировал), но отображается на экране в кои8, то есть нечитаемо. А
>>в PHP вебприложение отдается в виде вопросов ????. Как лечить? И
>>как обеспечить совместимость разрабатываемого приложения со старыми MySQL?
>>Спасибо!
>
>
>Только что решил проблему следующим образом: в PHP скрипте поставил  mysql_query("SET
>NAMES cp1251");
>
>(хостинг находится на Яхоо)

Ничего не помогает!
Никак не могу решить данную проблему с phpmyadmin 2.8.0.1 и 2.8.0.2 ( МуSQL 4.1.10)

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "MySQL 4.1 и кодировки"  +/
Сообщение от Vadq email(ok) on 24-Мрт-06, 14:56 
>Никак не могу решить данную проблему с phpmyadmin 2.8.0.1 и 2.8.0.2 (
>МуSQL 4.1.10)

Выяснил, что последняя рабочая версия пхпадмина 2.5.6, начиная с 2.6 кодировка win-1251 в базе не читаема. Кто знает что надо подкрутить в config.inc.php


Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

9. "MySQL 4.1 и кодировки"  +/
Сообщение от Danila email(??) on 27-Мрт-06, 14:33 
>>>FreeBSD 5.4, MySQL 4.1 и phpMyAdmin из портов. Не могу правильно настроить
>>>кодировку. Все вроде выставил в cp1251, но phpMyAdmin показывает в системных
>>>переменных character set system = utf8. Сам MyAdmin работает корректно, в
>>>консоль на mysql отдается вроде в cp1251 (это на глаз, не
>>>перекодировал), но отображается на экране в кои8, то есть нечитаемо. А
>>>в PHP вебприложение отдается в виде вопросов ????. Как лечить? И
>>>как обеспечить совместимость разрабатываемого приложения со старыми MySQL?
>>>Спасибо!
>>
>>
>>Только что решил проблему следующим образом: в PHP скрипте поставил  mysql_query("SET
>>NAMES cp1251");
>>
>>(хостинг находится на Яхоо)
>
>Ничего не помогает!
>Никак не могу решить данную проблему с phpmyadmin 2.8.0.1 и 2.8.0.2 (
>МуSQL 4.1.10)

Да, при коннекте скрипта (и вообще клиента) к серверу нужно указывать тип используемой кодировки иначе все 8-битные символы будут ????????? :
SET NAMES CP1251 или SET CHARSET CP1251;

Кроме того, есть полезная весчь: после того как создана база, но еще не созданы таблицы, сделать оператор "alter database БАЗА default charset cp1251". После этого все таблицы и все добавляемые в них поля (бывает приходится добавлять через alter database add column...) всегда будут иметь один и тотже charset, т.е. не будет путаницы чарсетов.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

14. "MySQL 4.1 и кодировки"  +/
Сообщение от alex email(??) on 15-Июл-06, 01:14 
SPASIBO!!!!! SUPER!!!! POMOGLO!!!!
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "MySQL 4.1 и кодировки"  +/
Сообщение от petr999 email(ok) on 24-Мрт-06, 17:17 
по моему личному опыту здорово помогает
set character set нужная кодировка
об этом также написано в докции на 4.1
это выражение присваивает кодировку сущности соединения в процессе сервера.
также, подробности можно смотреть в
show variables like '%чтонужно%'
и только потом ковыряться в сложных приладах типа myadmin.
сам пользуюсь utf8 и доволен. :)

>FreeBSD 5.4, MySQL 4.1 и phpMyAdmin из портов. Не могу правильно настроить
>кодировку. Все вроде выставил в cp1251, но phpMyAdmin показывает в системных
>переменных character set system = utf8. Сам MyAdmin работает корректно, в
>консоль на mysql отдается вроде в cp1251 (это на глаз, не
>перекодировал), но отображается на экране в кои8, то есть нечитаемо. А
>в PHP вебприложение отдается в виде вопросов ????. Как лечить? И
>как обеспечить совместимость разрабатываемого приложения со старыми MySQL?
>Спасибо!


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Проблемы с кирилицей Cyrillic Character Sets (cp1251) в mysq..."  +/
Сообщение от Nick (??) on 05-Апр-06, 13:57 
Проблемы с кирилицей Cyrillic Character Sets (cp1251) при работе с mysql 4.1.18 (выводит такое ???????????).
Я нашел как решить проблему. Это посылка дополнительного запроса к mysql

function mysql_connection ()
{
  Global $host,$user,$pass;

if(!$dbc=@mysql_connect("$host","$user","$pass")){

mysql_query("SET NAMES cp1251");

return $dbc;
}


Но иногда это не срабатывает(возможно из-за потери соединения или большого количества запросов к базе). Мой хостинг имеет _ENV["LANG"] en_US.UTF-8, mysql 4.1.18, PHP4.
1) Можно ли как-то работать с Cyrillic Character Sets (cp1251) без посылки дополнительного запроса?
2) Можно ли настроить конфигурацию mysql для работы с cp1251 через .htaccess так как я не имею доступа к php.ini и my.ini на хостинге?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "Проблемы с кирилицей Cyrillic Character Sets (cp1251) в mysq..."  +/
Сообщение от .Ya. email(??) on 11-Апр-06, 13:51 
>1) Можно ли как-то работать с Cyrillic Character Sets (cp1251) без посылки
>дополнительного запроса?
>2) Можно ли настроить конфигурацию mysql для работы с cp1251 через .htaccess
>так как я не имею доступа к php.ini и my.ini на
>хостинге?
В папке сайта public_html откройте config.php и впишите в нем после <?php
mysql_query("SET NAMES 'cp1251'");
тоже самое в admin.php
Тогда ????? изменятся на русский язык
Если не поможет впишите и это
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
просто еслставляи вставлять данные не из файла, а в форму маскладмина получается кои8

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "Проблемы с кирилицей Cyrillic Character Sets (cp1251) в mysq..."  +/
Сообщение от Бруян email on 17-Апр-06, 17:04 
Все проблемы решатся. Возьми, просто, phpMyAdmin 2.7.0-pl1. Он отлично управляет как самой БД, так и кодировками, сравнениями, представлениями. Там все интуитивно понятно. создашь новую БД с нужной тебе кодировкой, например: cp1251_general_cs - Кириллический (многоязычный), чувствительный к регистру. Из старой БД экспортом данных извлеки все данные и влей как огромный SQL запрос на создание таблиц с данными все данные в новую БД. Все просто до критинизма, но и я над этим промучался целые сутки, пока нашел все, что мне нужно и сделал как мне нужно.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

13. "Проблемы с кирилицей Cyrillic Character Sets (cp1251) в mysq..."  +/
Сообщение от Q.Werty on 02-Май-06, 11:10 
CREATE TABLE `message_body` (
  `message_id` int(6) unsigned NOT NULL default '0',
  `message` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;

Помоголо!


Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

15. "Проблемы с кирилицей Cyrillic Character Sets (cp1251) в mysq..."  +/
Сообщение от АЛЕКСАНДР email on 10-Янв-11, 15:48 
> CREATE TABLE `message_body` (
>   `message_id` int(6) unsigned NOT NULL default '0',
>   `message` text NOT NULL
> ) ENGINE=InnoDB DEFAULT CHARSET=cp1251;
> Помоголо!

Уважаемый ГУРУ!

Все сделал как Вы написали!
Не помогло!
Опять эти ????? в базе данных!

Может быть есть еще какой способ?

С уважением
                Александр

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру