SQL Server: проблемы кодирования, когда строки помещаются в varchar
У меня есть сервер базы данных другой страны в SQL Server. У них разные сопоставления.
- Тайваньская подборка баз данных - Chinese_Taiwan_CI_AS (CP950)
- Сортировка базы данных Японии: Japanese_CI_AS (CP932)
Вызов хранимой процедуры с использованием oledb, и проект C++ преобразует строку в данные UTF-8 и отправляет ее. Параметр хранимой процедуры имеет тип varchar
,
Я знаю, что это проблема кодирования, потому что кодовые страницы UTF-8 и CP950 или CP932 не совпадают. Но есть разница при чтении и декодировании данных в проекте C++.
Даже с той же самой ломаной строкой японский язык может быть декодирован как обычно, но китайские слова расшифрованы с помощью вопросительных знаков или ломаной строки
Почему они так работают?
Пожалуйста, помогите мне....