SQLServer Проблемы с кодировкой
Параметры сортировки сервера: SQL_Latin1_General_CP1_CI_AS. Параметры сортировки БД были изменены с SQL_Latin1_General_CP1_CI_AS на Cyrillic_General_CI_AS, но я по прежнему в полях вместо кириллицы вижу значения вроде ????????????. Пробовал использовать в INSERT префикс N перед '', но результат тот же. Как корректно сохранять кириллицу в поля БД? Тип данных использую VARCHAR(N). Есть ещё одна БД на другом сервера, где параметр сортировки сервера изначально был установлен как Cyrillic_General_CI_AS и там поля с точно таким же типом данных спокойно хранят кириллицу, так что проблема мне кажется не в типе данных.
Ответы (1 шт):
Вы используете тип данных VARCHAR(N) в таблице, где N - количество символов, допустимых для хранения данных, и пытаетесь вставить строку формата NVARCHAR(N) в VARCHAR(N). Необходимо использовать тип данных поля таблицы NVARCHAR(N), если хотите вставить русские символы без "кракозябр", при этом предваряя строку символом N при вставке записей (N'Some text...').
Всё это зависит от настроек операционной системы. Часто такая проблема с появлением "кракозябр" встречается на полностью англоязычных сборках.