Как установить взаимно-однозначное соответствие кодировки?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Как установить взаимно-однозначное соответствие кодировки?

Сообщение racotr » 12.01.2010 11:33:41

Вопрос возник такого характера:

Слева - MySQL, справа - форма Lazarus
Изображение

В MySQL , в поле Сравнение, везде стоит uft8_unicode_ci, первые две строчки на картинке - экспортированы из виндоуса, при экспорте указывал кодировку файла cp1251, в MySQL зашло корректно, в Lazarus почему-то вопросиками

Последние 2 строчки введены в MySql запросом QUERY в Лазарусе. Добился, что в форме Лазаруса они отображаются корректно, но в MySQL как видим нет. В Лазарусе при этом делал также запрос Set names uft8, без него и в Лазарусе отображалась ерунда.

Вопрос: Как установить взаимно-однозначность кодировок. Чтобы не испытывать неудобств ни в MySQL, ни в Lazarus. Это вообще возможно?
racotr
новенький
 
Сообщения: 14
Зарегистрирован: 19.12.2009 00:32:56
Откуда: Braneapol

Re: Как установить взаимно-однозначное соответствие кодировки?

Сообщение ev » 12.01.2010 20:43:02

какая версия MySql? какая ось? в my.cnf какие и где указаны кодировки?

Добился, что в форме Лазаруса они отображаются корректно, но в MySQL как видим нет.

не видно этого... это phpMyAdmin показывает, а не MySQL
какие параметры соединения у phpMyAdmin'а?
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Re: Как установить взаимно-однозначное соответствие кодировки?

Сообщение racotr » 13.01.2010 12:21:02

ev писал(а):какая версия MySql? какая ось? в my.cnf какие и где указаны кодировки?

Добился, что в форме Лазаруса они отображаются корректно, но в MySQL как видим нет.

не видно этого... это phpMyAdmin показывает, а не MySQL
какие параметры соединения у phpMyAdmin'а?


Система Linux OpenSuSE 11.0, MySQL сервер 5.1.6, phpMyAdmin 2.11.9.6, Lazarus 0.9.28-0.(i386)

Содержимое файла /etc/my.cnf таково (убрал только закомментированные области). Особо про кодировки тут почему-то не говорится:

Код: Выделить всё
[client]
port      = 3306
socket      = /var/lib/mysql/mysql.sock
[mysqld]
port      = 3306
socket      = /var/lib/mysql/mysql.sock
datadir   = /var/lib/mysql
skip-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

log-bin=mysql-bin

binlog_format=mixed

server-id   = 1

[safe_mysqld]
log-error   = /var/log/mysql/mysqld.log
socket      = /var/lib/mysql/mysql.sock

[mysqldump]
socket      = /var/lib/mysql/mysql.sock
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

[mysqld_multi]
mysqld     = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
log        = /var/log/mysqld_multi.log


Насчет phpmyadmin спасибо за совет. Щас гляну, что там за настройки. В общем по поводу кодировок нашел только в файле /phpMyAdmin/libraries/config.default.php, следующие строки:

Код: Выделить всё
$cfg['DefaultConnectionCollation'] = 'utf8_unicode_ci';
$cfg['FilterLanguages'] = '';
$cfg['DefaultCharset'] = 'iso-8859-1';
$cfg['AvailableCharsets'] = array(
    'iso-8859-1',
    'iso-8859-2',
    'iso-8859-3',
    'iso-8859-4',
    'iso-8859-5',
    'iso-8859-6',
    'iso-8859-7',
    'iso-8859-8',
    'iso-8859-9',
    'iso-8859-10',
    'iso-8859-11',
    'iso-8859-12',
    'iso-8859-13',
    'iso-8859-14',
    'iso-8859-15',
    'windows-1250',
    'windows-1251',
    'windows-1252',
    'windows-1256',
    'windows-1257',
    'koi8-r',
    'big5',
    'gb2312',
    'utf-16',
    'utf-8',
    'utf-7',
    'x-user-defined',
    'euc-jp',
    'ks_c_5601-1987',
    'tis-620',
    'SHIFT_JIS'
);


В-общем, ситуация пока не понятная... Может всё дело в этой DefaultCharset?
racotr
новенький
 
Сообщения: 14
Зарегистрирован: 19.12.2009 00:32:56
Откуда: Braneapol

Re: Как установить взаимно-однозначное соответствие кодировки?

Сообщение ev » 13.01.2010 18:52:33

phpMyAdmin 2.11.9.6

уже 3.2.4 доступна ;)
можно еще кликнуть на вкладку "переменные" о посмотреть все что относится к кодировкам
по идее (в идеале) везде должно быть utf8
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Re: Как установить взаимно-однозначное соответствие кодировки?

Сообщение eevee » 14.01.2010 17:53:54

У меня в MySQL кодировка utf8_general_ci, локаль KOI8-R в линуксе Gentoo. С экспортом и импортом проблем не видел...
eevee
новенький
 
Сообщения: 63
Зарегистрирован: 29.12.2009 17:52:44
Откуда: Саратов


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 58

Рейтинг@Mail.ru