SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 16.07.2008 17:51:54

charodej
Участник
Зарегистрирован: 15.04.2008
Сообщений: 12

проблема с кодировками

Извините, если такая проблема уже обсуждалась, но я не нашел объяснения на вашем форуме
У меня не отображаются некоторые символы некоторых алфавитов, например ß (эсцет) в немецком, специфические символы польского алфавита, не отображаются в MySQL CommandLine Tool, кодировка базы - utf8, кодировка клиента, сервера, подключения - utf8,вместо символов -  знаки вопросов, хотя я менял и ставил cp852, cp1250(на этих cp живут польские символы), всё равно отображаются неверные символы... Помогите...

Неактивен

 

#2 16.07.2008 21:33:08

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: проблема с кодировками

В какой ОС вы пытаетесь отобразить этот символ? Может быть, шрифт, которым вы это пытаетесь
это отбразить, не содержит этого символа?

UPD: Самый тупой способ это проверить - попробовать напечатать его в месте, где он должен
выводиться. Типа "SELECT 'ß'".

Неактивен

 

#3 17.07.2008 12:40:05

charodej
Участник
Зарегистрирован: 15.04.2008
Сообщений: 12

Re: проблема с кодировками

Windows XP
Ну да, действительно, не отображается, тогда вопрос сводится к тому, как мне отобразить в консоли польские символы... ą ć ł ż ż

Уважаемые участники форума, прошу помочь мне с одной проблемой:

ОС - Windows XP
СУБД - MySQL

Создаю базу:

Код:

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

В ней таблицу:

Код:

mysql> show create table t1;
+-------+--------------------------------------------------------------------+
| Table | Create Table                                                  |
+-------+--------------------------------------------------------------------+
| t1    | CREATE TABLE `t1` (
          `id` int(11) default NULL,
             `column1` text
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8                                  
+-------+--------------------------------------------------------------------+
1 row in set (0.02 sec)

И вставляю содержащую ПОЛЬСКИЕ символы строку:

Код:

/*Нужно прописать так, иначе строка не вставляется*/
mysql> set names cp1250;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into t1 values (1, 'ąążżłł');
Query OK, 1 row affected (0.01 sec)

После этого пишу приложение на С#, извлекающее данные из базы

Строка подключения:
"Driver={MySQL ODBC 3.51 Driver};Server=ХХХХХ;Port=12345;Database=dbtest;User ID=root;Password=ХХХХХ;Option=3;"

Перед извлечением данных из базы выполняю команду SET NAMES utf8;(из С# при помощи OdbcCommand)

Далее извлекаю данные и получаю:

id       column1
1    Д…Д…ЕјЕјЕ‚Е‚

Если перед извлечением выполнить SET NAMES cp1250;

То данные другие:

id       column1
1    №№їїіі

Шрифт польские символы поддерживает...

Каким образом можно добиться верного отображения символов?

Заранее премного благодарен...

Отредактированно charodej (17.07.2008 18:33:56)

Неактивен

 

#4 09.08.2008 09:23:25

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 848

Re: проблема с кодировками

Строка подключения:
"Driver={MySQL ODBC 3.51 Driver};Server=ХХХХХ;Port=12345;Database=dbtest;User ID=root;Password=ХХХХХ;Option=3;"

Че-то у Вас, по-моему, драйвер староват.
Обновите до 5-й версии.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson