Три вопроса со следующим сценарием:
- Производственная база данных SQL Server 2005 с кодовой страницей Latin1 и отображением "?" для недопустимых символов в Management Studio.
- SomeCompanyApp клиент как сервис, который заполняет данные с серверов и рабочих станций.
- SomeCompanyApp консоль управления, которая показывает "?" для азиатских символов.
Поскольку это prod db, я не буду писать в него.
Я не знаю, действительно ли клиентское приложение, которое хранит данные в базе данных, правильно хранит их как Unicode, и оно просто не отображается, потому что они используют Latin1 для консоли.
Q1: Насколько я понимаю, SQL Server сохраняет текст nvarchar как Unicode независимо от кодовой страницы, или я совершенно не прав, и если кодовая страница является Latin1, тогда все, что не в этой кодовой странице, преобразуется в " ?».
Q2: То же самое с текстовым столбцом?
Q3: Есть ли способ с помощью SQL Server Management Studio или Visual Studio и некоторого кода (неважно, на каком языке :)) запросить БД и показать, действительно ли символы отображаются как японский, китайский, корейский и т. д.
Моя последняя цель - извлечь данные из БД и сохранить их в другом БД, используя UTF-8, чтобы показать японские и другие азиатские символы в том виде, как они есть в моем собственном клиентском веб-приложении. Я соглашаюсь с ответом на вопрос 3. Я могу писать на нескольких языках и, по крайней мере, понимать некоторые другие, но я просто недостаточно разбираюсь в Unicode. Если вы хотите знать, что мое веб-приложение будет использовать pyodbc и cassandra, но для этих вопросов это не имеет значения.