Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > C/C++ Базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 02.08.2011, 15:23   #1
Lindemann66
Форумчанин
 
Регистрация: 28.02.2011
Адрес: Россия, Ульяновск
Сообщений: 127
Репутация: 6
Лампочка Проблема с отображением кодировки в Базе Данных

Всем привет!
Такая задача

Необходимо сохранять в БД (SQL Server) текст в кодировке UTF-8

Кодировку текста меняю следующей функцией
Код:

//перекодировка строки к кодировке UTF-8
CString ContvertToUTF8(CString str, CString from) {
	map<CString, int> codePages;
	codePages["utf-16"] = 1200;
	codePages["windows-1250"] = 1250;
	codePages["windows-1251"] = 1251;
	codePages["koi8-r"] = 20866;
	codePages["koi8-u"] = 21866;
	codePages["koi8-u"] = 21866;

	//если данной кодировки в списке нет
	if (codePages.find(from) == codePages.end()) {
		AfxMessageBox("Неизвестная кодировка " + from);
		return "";
	}	

	//Get the size of the string by setting the 4th parameter to -1:
	DWORD dwNum = MultiByteToWideChar(codePages[from], 0, str, -1, NULL, 0);

	//Allocate space for wide char string:
	wchar_t *pwText;
	pwText = new wchar_t[dwNum];
	if(!pwText) {
		delete []pwText;
	}
	//Then convert:
	MultiByteToWideChar(codePages[from], 0, str, -1, pwText, dwNum);

	return CString(pwText);
}

Но суть не в этом
Допустим, имеет страницу википедии
Она в UTF-8
...<div id="siteSub">Материал из Википедии — свободной энциклопедии</div>...

НО, когда текст страницы заносится в БД, при просмотре (использую SQL Manager 2011) в базе данные отображаются в каком-то другом виде, допустим, р*сѓр±сђрёрєр°с†рёсџ
Для работы с данными использую ODBC
То есть получается, что программа при записи в базу как-то сама конвертирует кодировку?
У кого-то ыбла похожая проблема?

Может, надо задавать кодировку в СРАВНЕНИИ в свойствах поля таблицы?
Там у меня установлена кодировка Cyrillic_General_Cl_AS
Lindemann66 вне форума   Ответить с цитированием
Старый 02.08.2011, 15:49   #2
veniside
Профессионал
 
Регистрация: 03.01.2011
Сообщений: 2,508
Репутация: 868
По умолчанию

Код:

ContvertToUTF8()

откуда там UTF-8 на выходе возмётся? Вы просто сконвертили исходный текст в WideString. Теперь WideString надо перегнать в UTF-8 вызвав WideCharToMultiByte(CP_UTF8, ....), вот тогда у вас получится текст в UTF-8.

Хотя, если исходник из википедии и так уже в UTF-8, ничего менять не надо.
__________________
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума   Ответить с цитированием
Старый 02.08.2011, 15:54   #3
Lindemann66
Форумчанин
 
Регистрация: 28.02.2011
Адрес: Россия, Ульяновск
Сообщений: 127
Репутация: 6
По умолчанию

Цитата:
Сообщение от veniside Посмотреть сообщение
Код:

ContvertToUTF8()

Теперь WideString надо перегнать в UTF-8 вызвав WideCharToMultiByte(CP_UTF8, ....), вот тогда у вас получится текст в UTF-8.
Спасибо!

Цитата:
Сообщение от veniside Посмотреть сообщение
Хотя, если исходник из википедии и так уже в UTF-8, ничего менять не надо.
Это да
Lindemann66 вне форума   Ответить с цитированием
Ответ

Опции темы

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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с отображением сайта plum HTML и CSS 5 26.07.2011 08:30
Проблема с отображением сайта victor5133 HTML и CSS 13 07.04.2011 21:51
Проблема с отображением. Simel HTML и CSS 1 07.01.2011 02:57
проблема с отображением DBGrid gotex БД в Delphi 12 04.06.2008 01:06
Очень БОЛЬШОЙ вопрос про кодировки в базе Tanuska___:) БД в Delphi 3 02.05.2008 05:36


03:08.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru