Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   UTF на выходе из MySQL (http://www.flasher.ru/forum/showthread.php?t=65503)

Смольный (Smolniy) 11.06.2005 00:20

UTF на выходе из MySQL
 
Вот у меня вопрос...
Поставил себе новый мускуль, раньше был очень уж старый.
И он выдает назад данные ТОЛЬКО в UTF. Например, phpmyadmin при выборе кодировки, показывает только UTF-овские.
Мои программы выводят ???????
Если программа при коннекте выполнит SQL-запрос
SET CHARACTER SET cp1251
то все возвращается как надо. Но это переделывать ВСЕ мои программы??? Хочу настроить что-либо в сервере... :(


My.ini
Цитата:

[client]
port=3306
default-character-set=cp1251

[mysqld]

port=3306
basedir="D:/www/MySQL/"
datadir="D:/www/MySQL/Data/"
default-character-set=cp1251

### мои бесплодные эксперименты, толку 0
#character-set-server=cp1251
#collation-server=cp1251_general_ci
default-collation=cp1251_general_ci
#init_connect="SET CHARACTER SET cp1251"
init-connect="SET NAMES 'cp1251';SET CHARACTER SET cp1251;"
###

character_sets-dir= D:/www/MySQL/share/charsets
default-storage-engine=INNODB
max_connections=100
query_cache_size=0
table_cache=256
tmp_table_size=5M
thread_cache_size=8
myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=8M
key_buffer_size=8M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=212K
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=8M
innodb_log_file_size=10M
innodb_thread_concurrency=8
Мускуль 4.1.12a, php 5.0.4 (нареканий нет)

nagash 11.06.2005 12:23

в 4.1 у каждой таблички своя кодировка может быть, задаётся во время CREATE TABLE
http://dev.mysql.com/doc/mysql/en/create-table.html
CHARACTER SET charset_name [COLLATE collation_name]

RFMitrio 15.06.2005 20:43

+ скорее всего если при create database указать character set, таблицы по дефолту будут этот character set получать.

juggy 15.06.2005 23:25

DEFAULT CHARSET надо наверное поставить на таблицу.
Код:

CREATE TABLE `sometable` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `parent` int(10) unsigned NOT NULL default '0',
  `title` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1;


Ales 17.06.2005 17:12

Смольный пишет:
Господа, я это знаю, проблема не в этом.
1. База зранит данные в 1251, это произошло хотя бы потому что я перенес данные из старой БД просто переписыванием папки data.
2. У меня баз штук 20 общей массой в гига полтора, если я буду пересоздавать таблицы и переливать данные, я умру. :)
3. База конвертирует данные туда-сюда без проблем, например если выполнить запрос SET CHARACTER SET cp1251 то она прекрасно отдает 1251, но я не хочу перелопачивать и дописывать все свои проги, и не могу дописать чуже проги (тот же phpmyadmin), форумы и прочую чепуху.

Собственно говоря, меня нимало не волнует, как он там их хранит у себя внутре, вопрос в том, что он _отдает_ данные в utf. Я сильно подозреваю, что если создать таблицу как вы пишете, то отдавать он все равно будет в utf, конвертируя (хотя это надо бы проверить; вечером смогу, я сейчас в Школе).

Штука в том что старенький мускуль работал без нареканий, новый выдает видимо какое-то умолчание, данные все те же. Не знает ли кто как это настраивается? Ведь попой же чувствую, что это какая-то настройка...
Если никто не подскажет именно настроечный вариант - значит буду либо программы колбасить, либо пересоздам таблицы как вы говорите, что ж остается делать... :(

nagash 17.06.2005 17:20

запускать сервер с параметрами
--character-set-server=cp1251
--default-character-set=cp1251
или в my.cnf добавить
character-set-server = cp1251
default-character-set = cp1251
в раздел [mysqld]

styx 17.06.2005 17:45

Что касается phpmyadmin - он, если видит MySQL 4.1+, всегда использует Unicode - это особенность именно phpmyadmin. Можно эту фичу в нём убрать, но не стоит :)


Часовой пояс GMT +4, время: 00:53.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.