Sql server 2005 SQL Server 2005-字符编码问题
我试图将这个值:țșșțșșîă–/,șllkoăî–存储到SQL Server中的一列中 该列为nvarchar(1000),insert语句如下所示Sql server 2005 SQL Server 2005-字符编码问题,sql-server-2005,encoding,Sql Server 2005,Encoding,我试图将这个值:țșșțșșîă–/,șllkoăî–存储到SQL Server中的一列中 该列为nvarchar(1000),insert语句如下所示 N'țșșțșțșțșîăâ./,șllkoăîâ=' 但里面的数据仍然显示为:??????a–a/,?llkoa–a= 我能试试什么吗 编辑 我刚刚意识到我已经更改了数据库中的数据类型,但是linq2sql映射仍然使用varchar而不是nvarchar 这就是导致问题的原因-我只是在尝试手动插入后才看到这一点 谢谢 您如何将此添加到您的
N'țșșțșțșțșîăâ./,șllkoăîâ='
但里面的数据仍然显示为:??????a–a/,?llkoa–a=
我能试试什么吗
编辑
我刚刚意识到我已经更改了数据库中的数据类型,但是linq2sql映射仍然使用varchar而不是nvarchar
这就是导致问题的原因-我只是在尝试手动插入后才看到这一点
谢谢 您如何将此添加到您的表中??在管理工作室???你用什么陈述 如果您有
NVARCHAR
列,则必须使用带有前导N
前缀的N'…'
语法才能工作:
INSERT INTO dbo.YourTable(someColumn)
VALUES(N'țșșțșțșțșîăâ')
如果省略N
前缀,Mgmt Studio将暂时将其转换为非UnicodeVARCHAR
CREATE TABLE Test (test nvarchar(1000))
INSERT Test (test) VALUES (N'țșșțșțșțșîăâ./,șllkoăîâ=')
-- SSMS query pane = correct results
SELECT * FROM Test
现在,右键单击对象资源管理器中的表,“编辑前200行”或“选择前1000行”在SSMS 2008中为我提供了正确的结果
接下来,不带前缀N。根据您的问题,数据被破坏
INSERT Test (test) VALUES ('țșșțșțșțșîăâ./,șllkoăîâ=')
SELECT * FROM Test
--gives ?????????îaâ./,?llkoaîâ=
因此,这表明SSMS和SQL的行为与广告中的完全相同:请向我们展示您用于插入数据的确切代码(或方法)