Как найти, какой набор символов используется базой данных

StackOverflow https://stackoverflow.com/questions/249376

  •  05-07-2019
  •  | 
  •  

Вопрос

Я могу получить доступ к базе данных либо из программы .NET (используя ODBC), либо через инструмент управления базой данных (написанный на Java).

Если я напишу '& # 233;' символ в базу данных из программы .NET, он выглядит как '& # 213;' (заглавная O с тильдой) в инструменте управления БД.

Если я напишу '& # 233;' символ в базу данных из инструмента управления БД, он отображается как «& # 197;» (заглавная A с кружком сверху) в программе .NET.

Я не пытаюсь решить проблему (т.е. обе программы показывают одно и то же), хотя это было бы неплохо. Я просто пытаюсь угадать, какие наборы символов используются каждым для интерпретации данных, так что я могу выполнить преобразование самостоятельно, если я дам данные с помощью .NET и повторно введу их с помощью инструмента.

Итак, какая комбинация из двух наборов символов даст несоответствия символов, описанные выше?

Спасибо за вашу помощь.

РЕДАКТИРОВАТЬ: с использованием Sybase ASE 12.5

РЕДАКТИРОВАТЬ: в основном вопрос: знаете ли вы кодировку символов, в которой кодовая точка E9 представляет символ '& # 213;' (заглавная O с тильдой) или '& # 197;' (заглавная А с кружком сверху)? (это предполагает, что один из них использует латиницу 1, следовательно, E9, что, я думаю, вполне вероятно)

РЕДАКТИРОВАТЬ: решение Пола делает это. Ответ о кодировке: hp-roman8

Это было полезно?

Решение

Sybase автоматически пытается выполнить преобразование, если на сервере и на клиенте используются разные наборы символов. Если вы выключите автоматическое преобразование кодировки с помощью,

set char_convert off

вы все еще получаете то же самое "& # 213;" и '& # 197;' s?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top