Как найти, какой набор символов используется базой данных
-
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?