Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 SQL Server 2005-字符编码问题_Sql Server 2005_Encoding - Fatal编程技术网

Sql server 2005 SQL Server 2005-字符编码问题

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 这就是导致问题的原因-我只是在尝试手动插入后才看到这一点 谢谢 您如何将此添加到您的

我试图将这个值:țșșțșșîă–/,șllkoăî–存储到SQL Server中的一列中

该列为nvarchar(1000),insert语句如下所示

N'țșșțșțșțșîăâ./,șllkoăîâ=' 
但里面的数据仍然显示为:??????a–a/,?llkoa–a=

我能试试什么吗

编辑

我刚刚意识到我已经更改了数据库中的数据类型,但是linq2sql映射仍然使用varchar而不是nvarchar

这就是导致问题的原因-我只是在尝试手动插入后才看到这一点


谢谢

您如何将此添加到您的表中??在管理工作室???你用什么陈述

如果您有
NVARCHAR
列,则必须使用带有前导
N
前缀的
N'…'
语法才能工作:

INSERT INTO dbo.YourTable(someColumn)
 VALUES(N'țșșțșțșțșîăâ')
如果省略
N
前缀,Mgmt Studio将暂时将其转换为非Unicode
VARCHAR

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的行为与广告中的完全相同:请向我们展示您用于插入数据的确切代码(或方法)