Модераторы: bartram, Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема с кодировками 
:(
    Опции темы
charodej
Дата 16.7.2008, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 26.3.2008
Где: Тула

Репутация: нет
Всего: нет



Извините, если такая проблема уже обсуждалась, но я не нашел объяснения на вашем форуме
У меня не отображаются некоторые символы некоторых алфавитов, например ß (эсцет) в немецком, специфические символы польского алфавита, не отображаются в MySQL CommandLine Tool, кодировка базы - utf8, кодировка клиента, сервера, подключения - utf8,вместо символов -  знаки вопросов, хотя я менял и ставил cp852, cp1250(на этих cp живут польские символы), всё равно отображаются неверные символы... Помогите... 
PM MAIL ICQ   Вверх
MuToGeN
Дата 16.7.2008, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: нет
Всего: 32



Какая ОС?


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Feldmarschall
Дата 16.7.2008, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



что значит "менял и ставил"? где менял и что ставил?
кодировка выводимых символов зависит от кодировки самой консоли. можно поменять её. можно - кодировку вывода из базы. 

PM   Вверх
charodej
Дата 17.7.2008, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 26.3.2008
Где: Тула

Репутация: нет
Всего: нет



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

Это сообщение отредактировал(а) charodej - 17.7.2008, 11:38
PM MAIL ICQ   Вверх
skyboy
Дата 17.7.2008, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 3
Всего: 260



лучше всего расписать последовательность. шрифт, используемый для консоли, выполнение chcp в консоли, set names при первом обращении  к БД, результат show create table и пример запроса.

Добавлено через 40 секунд
Цитата(charodej @  17.7.2008,  10:33 Найти цитируемый пост)
Ну то есть вопрос сводится к тому, как мне отобразить в консоли польские символы... ą ć ł ż ż

кстати говоря, просто, без базы, ты можешь эти символы вводить в консоли и видеть их?
PM MAIL   Вверх
charodej
Дата 17.7.2008, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 26.3.2008
Где: Тула

Репутация: нет
Всего: нет



Нет, в том и дело, если не брать в расчет базу, как мне отобразить в консоли эти символы
Код

Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\Documents and Settings\pavsenin>chcp 1250
Active code page: 1250

C:\Documents and Settings\pavsenin>cd c:\sermysql5\bin

C:\sermysql5\bin>mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: N
O)

C:\sermysql5\bin>mysql -u root -p
Enter password: ****
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 59
Server version: 5.0.45-community-nt MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> set names cp1250;
Query OK, 0 rows affected (0.02 sec)

mysql> use dbtest;
Database changed
mysql> show create table t1;
+-------+-----------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------+
| Table | Create Table

                                |
+-------+-----------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------+
| t1    | CREATE TABLE `t1` (
  `id` int(11) NOT NULL,
  `col1` char(25) default NULL,
  `col2` varchar(25) default NULL,
  `col3` tinytext,
  `col4` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+-----------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------+
1 row in set (0.03 sec)

mysql> select * from t1;
+----+---------------------------+---------------------------+--------+---------
-----------------------------+
| id | col1                      | col2                      | col3   | col4
                             |
+----+---------------------------+---------------------------+--------+---------
-----------------------------+
|  1 | ąąąąą                     | ćććććć                    | łłłłłł | żżżżżżż
                             |
|  1 | aaaaa                     | ccccc                     | zzzzz  | lllll
                             |
|  1 | ććććć                     | łłłłł                     | ąąąąą  | żżżżż
                             |
|  1 | x69x69x69                 |                           |        |
                             |
|  1 | qwertasdfgzxcvbyuiophjkln | łłłłł                     | ąąąąą  | żżżżż
                             |
|  1 | qwertasdfgzxcvbyuiophjkln | łłłłł                     | ąąąąą  | żżżżż
                             |
|  1 |                           | qwertasdfgzxcvbyuiophjkln | łłłłł  | ąąąąą
                             |
|  1 |                           |                           |        | qwertasd
fgzxcvbyuiophjklnmęąśżźć€ółń |
+----+---------------------------+---------------------------+--------+---------
-----------------------------+
8 rows in set (0.00 sec)

mysql>


только нужные буковки не отображаются верно
а шрифт был стандартный, Raster Fonts? может потому что в нем нет таких символов

Это сообщение отредактировал(а) charodej - 17.7.2008, 12:25
PM MAIL ICQ   Вверх
Feldmarschall
Дата 17.7.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Да, кстати. Выбери Lucida Console
PM   Вверх
charodej
Дата 17.7.2008, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 26.3.2008
Где: Тула

Репутация: нет
Всего: нет



 smile Выбрал, отображаются всем  smile 
PM MAIL ICQ   Вверх
charodej
Дата 17.7.2008, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 26.3.2008
Где: Тула

Репутация: нет
Всего: нет



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

ОС - 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.7.2008, 17:29
PM MAIL ICQ   Вверх
Feldmarschall
Дата 17.7.2008, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Для начала надо убедиться, что все вставилось нормально.
Можно проверить и в cp1250 в консоли, и в utf8 (сделав chcp 65001)
Если в консоли все выводится правильно, то надо заниматься с программой.
в том же ли соединении происходит запрос set names?
попробуй задампить строку в шестнадцатеричный вид и сравнить с эталоном
PM   Вверх
connector
Дата 27.7.2008, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 22.6.2008

Репутация: нет
Всего: нет



Подскажите плз.. вопрос, многим покажется детским, просто я в базах новичок.. В общем дело в том, что у меня не корректно заносятся(собсна, как и выводятся) данные в русском алфавите из пхп-скриптом из баз. Пробовал в phpMyAdmin'e менять кодировки(cp1250, utf8, cp1251) базы, таблиц, результат всегда один - буквы записываются в виде '?'. Хотя при записи phpMyAdmin'ом в базу, заносятся корректно, но скриптом извлекаются тоже как '?'. Думаю, проблема, по большому счёту, в хостинге, т.к. на локальном хосте с этим же скриптом тестировал -  всё норма и без заморочек. Всё это дело было на бесплатном хостинге(hostmonster.org.ua), так вот, сегодня перехожу на платный(hostlife.net), есть ли вероятность, что эта лажа будет и там?

Это сообщение отредактировал(а) connector - 27.7.2008, 11:50
PM MAIL   Вверх
skyboy
Дата 27.7.2008, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 3
Всего: 260



connector, ваааа... каой язык программирования? РНР? тогда почему вопрос не в разделе по РНР? или Perl? тогда почему не там? пир чем тут раздел Windows? или у тебя "скриптом" служит bat'ник.
Топистартер задавл вопросы по консольной mysql-client. И по работе исключительно в консоли.
Размещай в дальнейшем вопросы так, чтоб их расположение не вызывало недоумения.
По сабжу: set names надо делать в скрипте. ты делаешь?
PM MAIL   Вверх
connector
Дата 27.7.2008, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 22.6.2008

Репутация: нет
Всего: нет



Это были php-скрипты... Кстати разобрался уже.. там всего лишь надо было переменную окружения(NAMES) задать на utf8...
2 skyboy
Вообще то я сюда пришёл по пути: Форум -> Программирование -> Базы данных -> MySQL (еще), т.к. вопрос был по mysql.. но если я не прав, модеры не судите, я на форуме новичок..

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Windows"
December
bartram
Akella

Запрещается!

1. Обсуждать взлом и делиться кряками

2. Способствовать созданию и распространению вирусов

  • Для бессмертных бородатых вопросов типа Win vs Nix есть специальный форум Религиозные Войны
  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • ВСЕГДА УКАЗЫВАЙТЕ ВЕРСИЮ ОС

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, December, bartram, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Windows | Следующая тема »


 




[ Время генерации скрипта: 0.0517 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.