SQL Server 2005 - 字符编码问题 [英] SQL Server 2005 - character encoding issue
问题描述
该列是nvarchar(1000),插入到语句看起来像
N'ţşşţşţşţşîăâ./,şllkoăîâ='
但是内部的数据仍然显示如下:ªaâ./,?llkoaîâ=
有什么想法可以尝试?
编辑
我只是意识到我已经更改了数据库中的数据类型,但是linq2sql映射仍然使用varchar而不是nvarchar。
这是导致问题的原因 - 我只是在尝试手动插入后才看到。
谢谢。
CREATE TABLE Test(test nvarchar(1000))
INSERT Test (测试)VALUES(N'ţşşţşşşşşşăâş,şllkoăîâ=')
- SSMS查询窗格=正确的结果
SELECT * FROM Test
现在,右键单击对象资源管理器中的表,编辑顶部200行或选择顶部1000行在SSMS 2008中给出正确的结果, / p>
接下来,没有N前缀。数据根据您的问题被破坏
INSERT Test(test)VALUES('ţşşşţşţşţşîăâ./,şllkoăîâ=')
SELECT * FROM Test
--givesîaâ./,?llkoaîâ=
因此,这表明SSMS和SQL的行为与广告完全相同:请向我们显示您用于插入数据的确切代码(或方法)
I'm trying to store this value : țșșțșțșțșîăâ./,șllkoăîâ= into a column in SQL Server.
The column is nvarchar(1000) and the insert statement looks like
N'țșșțșțșțșîăâ./,șllkoăîâ='
But the data inside is still showing up like : ?????????îaâ./,?llkoaîâ=
Any ideas on what I could try ?
EDIT
I just realized that I had changed the datatype in the database , but the linq2sql mapping remained with varchar instead of nvarchar.
That's what was causing the issue - I only saw that after trying the manual insert.
Thanks.
CREATE TABLE Test (test nvarchar(1000))
INSERT Test (test) VALUES (N'țșșțșțșțșîăâ./,șllkoăîâ=')
-- SSMS query pane = correct results
SELECT * FROM Test
Now, right click the table in Object Explorer, "Edit top 200 rows" or "SELECT TOP 1000 rows" gives correct results in SSMS 2008 for me
Next, without N prefix. Data is broken as per your question
INSERT Test (test) VALUES ('țșșțșțșțșîăâ./,șllkoăîâ=')
SELECT * FROM Test
--gives ?????????îaâ./,?llkoaîâ=
So, this shows that SSMS and SQL are behaving exactly as advertised: please show us the exact code (or method) you are using to insert the data
这篇关于SQL Server 2005 - 字符编码问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!