Подтвердить что ты не робот

Поле базы данных SQL Server для обработки корейских и китайских символов

Возможно ли иметь поле в SQLServer, которое может хранить китайские, корейские и европейские символы? Мои китайские персонажи просто становятся?????

Тип данных также является NVARCHAR.

4b9b3361

Ответ 1

NVARCHAR - правильный тип для этого - он хранит все в двухбайтовом Unicode.

Обратите внимание на то, что при работе с полями NVARCHAR в SQL Server Management Studio вы абсолютно должны использовать префикс N'....' в этом случае!

Если вы используете это:

INSERT INTO dbo.YourTable(NVarcharColumn)
    VALUES('Some Chinese text here')

тогда SSMS будет временно конвертировать строковый литерал, который вы указываете в VARCHAR (не-Unicode!), и, таким образом, вы потеряете любые кодированные в Юникоде символы.

Однако, если вы используете:

INSERT INTO dbo.YourTable(NVarcharColumn)
    VALUES(N'Some Chinese text here')

(обратите внимание на префикс N перед строковым литералом!), тогда SSMS будет обрабатывать все как Unicode все время, а ваши китайские или корейские (или другие) специальные символы должны быть сохранены.