SQL Server 2005-字符编码问题
问题描述:
我试图将此值存储在SQL Server的一个列中:şşışışış。SQL Server 2005-字符编码问题
列数据类型为nvarchar(1000)和所述插入语句看起来像
N'țșșțșțșțșîăâ./,șllkoăîâ='
但是内部的数据仍然显示像向上:????????? IAA ./ ,?llkoaîâ=
任何想法,我可以尝试吗?
编辑
我才意识到,我已经在数据库中更改的数据类型,但LINQ2SQL映射保持与VARCHAR而不是NVARCHAR。
这就是造成这个问题的原因 - 我只是在尝试手动插入后才看到。
谢谢。
答
CREATE TABLE Test (test nvarchar(1000))
INSERT Test (test) VALUES (N'țșșțșțșțșîăâ./,șllkoăîâ=')
-- SSMS query pane = correct results
SELECT * FROM Test
现在,右键单击表对象资源管理器,“编辑前200行”或“SE LECT TOP 1000 rows“在我的SSMS 2008中给出了正确的结果
接下来,没有N前缀。数据被打破,按您的问题
INSERT Test (test) VALUES ('țșșțșțșțșîăâ./,șllkoăîâ=')
SELECT * FROM Test
--gives ?????????îaâ./,?llkoaîâ=
所以,这表明SSMS和SQL行为完全按照广告:请告诉我们确切的代码(或方法)您使用插入数据
答
你是如何将这个添加到你的表?在Mgmt Studio?你用什么陈述?
如果你有NVARCHAR
列,你必须使用的N'...'
语法与领先N
前缀这个工作:如果省略N
前缀
INSERT INTO dbo.YourTable(someColumn)
VALUES(N'țșșțșțșțșîăâ')
,管理Studio将其转换为无统一VARCHAR
暂时....