Поле базы данных SQL Server для обработки корейских и китайских символов
Возможно ли иметь поле в SQLServer, которое может хранить китайские, корейские и европейские символы? Мои китайские персонажи просто становятся?????
Тип данных также является NVARCHAR.
Ответ 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 все время, а ваши китайские или корейские (или другие) специальные символы должны быть сохранены.