The OpenNET Project / Index page

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

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

"Настройка кодировки в Mysql"  
Сообщение от wattonen email(ok) on 15-Авг-08, 14:08 
Доброе время суток!
Apache2+Mysql50+PHP5+FreeBSD70.
Mysql установлен по дефолту, со стандартной кодировкой latin1. В mysql'е есть база, в кодировке CP866. Возможно ли настроить перекодировку, чтобы клиенту в итоге возвращался KOI8-R, не трогая структуру базы?
Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

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


1. "Настройка кодировки в Mysql"  
Сообщение от ПитерПен on 15-Авг-08, 22:35 
>Доброе время суток!
>Apache2+Mysql50+PHP5+FreeBSD70.
>Mysql установлен по дефолту, со стандартной кодировкой latin1. В mysql'е есть база,
>в кодировке CP866. Возможно ли настроить перекодировку, чтобы клиенту в итоге
>возвращался KOI8-R, не трогая структуру базы?

Если в php то примерно так
$db_connect=mysql_query("set character_set_results='koi8r'");
Если в консоли, то
SET NAMES koi8r;

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Настройка кодировки в Mysql"  
Сообщение от wattonen email(ok) on 21-Авг-08, 17:05 
>>Доброе время суток!
>>Apache2+Mysql50+PHP5+FreeBSD70.
>>Mysql установлен по дефолту, со стандартной кодировкой latin1. В mysql'е есть база,
>>в кодировке CP866. Возможно ли настроить перекодировку, чтобы клиенту в итоге
>>возвращался KOI8-R, не трогая структуру базы?
>
>Если в php то примерно так
>$db_connect=mysql_query("set character_set_results='koi8r'");
>Если в консоли, то
>SET NAMES koi8r;

Странно, теперь стал отдавать вообще непойми в какой кодировке. Причем charset возвращает latin1.
Проверяю так:

<?php

mysql_query("set character_set_results='koi8r'");
$query="select value from history_str where itemid=21109 limit 10";
$result=mysql_query($query);
while ($row=mysql_fetch_row($result)) {
        echo "$row[0]\n";
}
$charset = mysql_client_encoding($link);
printf("$charset\n");
?>

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Настройка кодировки в Mysql"  
Сообщение от angra (ok) on 22-Авг-08, 17:11 
>В mysql'е есть база, в кодировке CP866.

Уточните момент, там только данные хранятся в cp866 или еще и кодировка базы выставлена в cp866. Посмотреть можно при помощи show create database и show create table.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Настройка кодировки в Mysql"  
Сообщение от wattonen email(ok) on 22-Авг-08, 17:28 
>>В mysql'е есть база, в кодировке CP866.
>
>Уточните момент, там только данные хранятся в cp866 или еще и кодировка
>базы выставлена в cp866. Посмотреть можно при помощи show create database
>и show create table.

mysql> show create database mydb;
+----------+-------------------------------------------------------------------+
| Database | Create Database                                                   |
+----------+-------------------------------------------------------------------+
| mydb   | CREATE DATABASE `mydb` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-------------------------------------------------------------------+
1 row in set (0.10 sec)

mysql>

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Настройка кодировки в Mysql"  
Сообщение от angra (ok) on 22-Авг-08, 17:45 
Я бы еще посоветовал на таблицы глянуть и отдельные поля. Но если и там везде latin1, то тогда дело дрянь. Исправить конечно можно, но придется внимательно прочитать раздел документации, посвященный работе мускула с кодировками, там описывается и процесс конвертации. Можно конечно и в клиенте конвертировать, но это лишь откладывает на время проблему, а не решает ее.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Настройка кодировки в Mysql"  
Сообщение от wattonen (ok) on 24-Авг-08, 13:58 
>Я бы еще посоветовал на таблицы глянуть и отдельные поля. Но если
>и там везде latin1, то тогда дело дрянь. Исправить конечно можно,
>но придется внимательно прочитать раздел документации, посвященный работе мускула с кодировками,
>там описывается и процесс конвертации. Можно конечно и в клиенте конвертировать,
>но это лишь откладывает на время проблему, а не решает ее.
>

Так все-таки почему клиенту не отдается в кои?
Да мне кажется конвертировать всю базу (около 2-х гигов) ради того чтобы в одном единственном запросе работала кодировка (при условии что все остальное работает) - это моветон.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Настройка кодировки в Mysql"  
Сообщение от angra (ok) on 25-Авг-08, 13:44 
потому что мускулу неверно указана кодировка таблицы. Переделывать надо только таблицы, где есть данные в неверной(то есть указана latin1, а на деле koi8) кодировке
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Настройка кодировки в Mysql"  
Сообщение от wattonen email(ok) on 25-Авг-08, 14:07 
>потому что мускулу неверно указана кодировка таблицы. Переделывать надо только таблицы, где
>есть данные в неверной(то есть указана latin1, а на деле koi8)
>кодировке

На деле там CP866, а клиент в koi8-r. В какую кодировку переделывать таблицу?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Настройка кодировки в Mysql"  
Сообщение от angra (ok) on 25-Авг-08, 15:11 
Внимательно прочитайте раздел документации мускула посвященный работе с кодировками, можете пропускать все что связано с collation.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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