Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблема с кодировками и FreeTDS  [new]
cesarito
Member

Откуда:
Сообщений: 3
Проблема такая:

На Ubuntu 11.10 установлен FreeTDS 8.0 для получения данных из базы SQL Server 2008.
В базе хранятся тексты в кодировке CP866.
Если я запрашиваю тексты через плагин QT, все русские буквы из этих текстов приходят в виде вопросительных знаков. Если из консоли через isql, то тексты приходят в виде пробелов, даже цифры не отображаются.
Как сконфигурировать FreeTDS так чтобы он возвращал нормальные русские буквы?
17 сен 12, 15:33    [13176699]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировками и FreeTDS  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Первая же дока в гугле.
cesarito
В базе хранятся тексты в кодировке CP866.
В базе нет кодировок, там есть COLLATION
Провайдер работает в UCS-2, в линуксе стандарт UTF-8
Остальное может обрезаться по краям. Оставьте работать клиент на Utf-8 и не будет проблем.
17 сен 12, 15:47    [13176859]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировками и FreeTDS  [new]
cesarito
Member

Откуда:
Сообщений: 3
клиент работает на UTF-8, и тем не менее возникает эта ошибка
19 сен 12, 11:30    [13187369]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировками и FreeTDS  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
cesarito
клиент работает на UTF-8, и тем не менее возникает эта ошибка

Какой тип данных колонки с русским текстом (varchar, nvarchar или какой то другой)?
19 сен 12, 13:56    [13188799]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировками и FreeTDS  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
cesarito, ну вы хоть настройку (freetds.conf) покажите, а то так всё голословно.
19 сен 12, 15:42    [13190063]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировками и FreeTDS  [new]
cesarito
Member

Откуда:
Сообщений: 3
/etc/odbc.ini

[ARIZONA-DB]
Description = Test Server
Driver = FreeTDS
Trace = No
Server = arizona\ZOG
TDS_Version = 8.0
DB_LOCALE=ru_RU.UTF-8
CLIENT_LOCALE=ru_RU.UTF-8
client_charset =ru_RU.UTF-8

/etc/freetds/freetds.conf

# A typical Sybase server
[egServer50]
host = symachine.domain.com
port = 5000
tds version = 5.0
client charset = UTF-8

# A typical Microsoft server
[egServer70]
host = ntmachine.domain.com
port = 1433
tds version = 8.0
client charset = UTF-8
22 сен 12, 11:39    [13205992]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировками и FreeTDS  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Судя по тому что пишут, то ошибка может быть даже не в FreeTDS.
Говорят что Qt криво анализирует переключение кодировок (я б тоже за это кое что оторвал) и плачутся, что Qt в одно время по глупости отказалась от поддержки TDS - мол сыроватое, а в итоге поддерживает больше чем ODBC.
Некоторые даже ODBC перекомпилировали, с другими настройками.

Обычно не у кого не возникает проблем, и тут надо копать, где был профтык, копать явно крутым спецом и явно на месте.
Лучше обратится лично в каком нидь сообществе ОпенСорс, специальном форуме, и может договорится встрече, показать исходник.
Поднять тестовый проект с нуля, с минимум конфига.

Это выходит за рамки этого форума и наших познаний.
23 сен 12, 17:27    [13209306]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить