Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Базы данных > MySQL
Перезагрузить страницу Как из cp1251 передать данные в utf8
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
cutcode
Guest
 
Сообщений: n/a
По умолчанию Как из cp1251 передать данные в utf8 - 03.10.2009, 00:20

Моя программа написанная на C++ поддерживает 2 базы данных: MS Acces и MySql.
При старте программы пользователь сам решает с какой базой он желает работать.
Причем MySql работал с русской кодовой страницей cp1251, теперь появилась необходимость перевести программу на Юникод.

Я перекомпелировал программу под Юникод, теперь в самой программе все нормально, т.к. при записи в файл латышских символов, таких как "ūšščēž", они нормально считываются из файла,
именно так, как я их записал. К тому же при работе с базой данных MS Access, тоже все нормально, т.е если я пишу команду
Код:
insert into some_table (some_field) values ('ūšščēž');
они тоже считыватся и отображаются на экране именно так, как я их записал в базу.

Т.е. получается, что с моей программой, как "клиентсой программой", вроде бы все нормально.

Но вот при работе с MySql ничего не получается.
Если я посылаю в MySql указанную выше команду, то в ответ я получаю не латышские символы ūšščēž, а их прототипы usscez.

Теперь что я сделал с Mysql.

1. сразу после установки соединения с MySql, я выполняю команды
Код:
SET NAMES utf8;
SET CHARACTER SET utf8;
set character_set_client='utf8';
set character_set_results='utf8';
после этого MySql возвращает мне всякую "гадость" типа Прием первичного пациента, оформление документации
команда
Код:
show variables like '%%char%%'
возвращает везде значения utf8, кроме character_set filesystem=binary

2. далее, я первожу базу данных, все таблицы и все поля в формат utf8
Код:
ALTER DATABASE `some_database` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE `some_table` DEFAULT CHARACTER SET utf8  COLLATE utf8_unicode_ci;
ALTER TABLE `some_table` CONVERT TO CHARACTER SET %s;
ALTER TABLE `some_table` CHANGE `some_field` `some_field` field_type  CHARACTER SET utf8  COLLATE cp1251_general_ci;
но Это не помогает, я попрежнему вижу всякую "гадость типа" Прием первичного пациента, оформление документации
Если пишу латышские символы, то попрежнему возвращается не то что надо.

Пробовал также сделать dump базы данных и затем заменить все символы cp1251 на utf8, и обратно загнать в базу. Опять не помогает.


Что я делаю не так?

спасибо
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как по wi fi передать данные с одного компа на другой Natashadance Wi-Fi и сети 4 09.07.2011 18:03
FileSystemObject как передать учетные данные при чтении файла по сети Voldyr Visual Basic 1 03.03.2011 11:00
Передать данные с помощью ListBox VictorM Visual Basic 2 03.06.2008 10:31
Excel и StringGrid как передать данные Roof Delphi 4 04.10.2007 17:40
Как передать данные с ListBox который находиться в Dialoge yarmolchuk Visual C++ 11 23.11.2006 13:10
Как передать данные window.open и метод POST Disassociative DHTML, JavaScript, VBScript 4 19.08.2005 11:01
Передать данные в html-форму Fuud Delphi 10 22.06.2005 22:45
Как передать данные из одного диалога в другой? imported_MasterX Prolog 1 25.04.2005 20:44
Mysql + cp1251 Rhayader PHP 2 03.03.2005 14:10
Как передать данные с одной формы на другую Venom280 Visual C++ 3 15.11.2004 07:51
Exel и Delphi. Как передать данные из Delphi в Excel Morfey Delphi 1 08.06.2004 18:52
Как передать данные из Excel в Vip6.1 бесплатный без ODBC Anonymous Prolog 2 04.12.2003 19:03



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов