Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > kak chitat' utf_8 iz bazi v programmu


Автор: Garo 11.9.2009, 13:15
Ya pishu odnu programmu na C++, kotoriy buder rabotat' s armyanskimi bukvami, i dlya etovo mne nujno chitat kakie to armyanskie slova iz bazi MySQL v programmu. v baze eti armyanskie slova napisani kodirovkoy utf_8. Vopros: kak mne chitat ix v programmu, chtob oni imeli tip wchar_t ???? ili mojet predlojete chto nibud' luchshe?
zaranee bolshoe spasibo!!!

Автор: jonie 11.9.2009, 23:16
wchar_t обычно это не utf-8, т.к. размер wchar_t фиксирован, в тоже время utf8 такого не продрузамевает.
Вообще для чтения utf-8 из mysql вам нужно будет сказать ему чтобы он вам отдавал этот самый utf-8. Делается это так:
Код

SET CHARACTER SET UTF8
SET NAMES UTF8

(это сразу после того как подключились).

ну а далее стандартные функции mysql будут возращать вам utf-8 (ну как указатель собственно на char*). Для того чтобы сконвертировать полученное в другую кодировку (например UCS-2) используйте libiconv.... так же есть вариант использовать ICU (http://icu-project.org/)......

Автор: Garo 12.9.2009, 09:04
nu eto ya znayu chto v baze moi slova predstavleni kodirovkoy utf-8, mne prosto nujno imet eti slova v programme tipom wchar_t, vot i vsyo.

Автор: jonie 13.9.2009, 11:44
wchar_t это, обычно UCS-2. Считайте в utf-8 и переконвертируйте в ucs-2 используя libiconv, я уже это писал. В чем проблемы ?

Автор: Garo 16.9.2009, 13:58
mojet eto budet zvuchat nelepo, no ya ne znayu chto takoe libiconv, vi ne podskajete, i ot kuda dastat' eto, kak ispolzovat', mojet primerchik napishite. Spasibo!!!

Автор: Alexeis 16.9.2009, 14:19
Garo, пожалуйста, пользуйтесь функцией транслита (ниже смайликов).

Добавлено через 5 минут и 12 секунд
 P.S. Если работаете под windows, то можно воспользоваться нативыми функциями MultiByteToWideChar/WideCharToMultiByte

http://msdn.microsoft.com/en-us/library/aa450989.aspx
http://msdn.microsoft.com/en-us/library/ms886760.aspx

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)