字符集MS SQL Server

时间:2018-11-12 08:51:30

标签: sql-server encoding

您好,我有一个网站(意大利语),很多人可以注册。有时人们是中文或俄语,因此他们输入中文或西里尔文键盘语言。 在我的数据库(MS Sql Server 2014 SQL Server 12.0.2000)上发生的是,这些字段由“?”填充?用户注册后回来时看到“ ???”作为他们的名字。 DB中的字段是varchar(但我也尝试过nvarchar)。 DB的排序规则是Latin1_General_CI_AS。 我需要做些什么才能允许这样做?如果有解决方案,数据库中的旧记录会怎样? 谢谢

1 个答案:

答案 0 :(得分:0)

create table Person(PersonName varchar(30))

insert into Person ( PersonName ) values
( 'Валерий' ),
( '미정' )

select * from Person

-- Result is:
-- PersonName
-- ------------------------------
-- ???????             -- These question marks have           
-- ???                 -- been saved in your table.

alter table Person alter column PersonName nvarchar(30)

insert into Person ( PersonName ) values
( N'Валерий' ),       -- Note use of N prefix
( N'미정' )          -- which indicates an nvarchar string

select * from Person

--Result is:
-- ------------------------------
-- ???????            -- Sorry, old data is lost
-- ???
-- Валерий
-- 미정