SQL Server 2005 - 字符编码问题

发布于 2024-10-13 15:35:05 字数 383 浏览 1 评论 0原文

我正在尝试将此值: şşşşşşşşşşşşşşşşşîăâ./,şllkoăîâ= 存储到 SQL Server 中的列中。

该列是 nvarchar(1000) ,插入语句看起来像

N'țșșțșțșțșîăâ./,șllkoăîâ=' 

但里面的数据仍然显示为: ?????????îaâ./,?llkoaîâ=

关于我可以尝试什么的任何想法?

编辑

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

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

谢谢。

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

幸福不弃 2024-10-20 15:35:05
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 的行为与广告中的完全一致:请向我们展示您用于插入数据的确切代码(或方法)

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

多情癖 2024-10-20 15:35:05

你如何将这个添加到你的表中?在管理工作室???你用什么说法??

如果您有 NVARCHAR 列,则必须使用带有前导 N 前缀的 N'...' 语法为此,

INSERT INTO dbo.YourTable(someColumn)
 VALUES(N'țșșțșțșțșîăâ')

如果您省略 N 前缀,Mgmt Studio 会暂时将其转换为非 Unicode VARCHAR...

How are you adding this to your table?? In Mgmt Studio??? What statement do you use??

If you have NVARCHAR columns, you must use the N'...' syntax with the leading N prefix for this to work:

INSERT INTO dbo.YourTable(someColumn)
 VALUES(N'țșșțșțșțșîăâ')

If you omit the N prefix, Mgmt Studio will convert this to non-Unicode VARCHAR temporarily....

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文