【发布时间】:2013-09-26 09:10:40
【问题描述】:
SQL Server 2008 - 表包含 nvarchar(max) 数据类型并存储没有 N' 前缀的印地语和英语数据。像 - “मांगलिक 欢迎”,但在餐桌商店中作为“׿¢»çÜ·¤ 欢迎”。
请指导如何在 .net 中显示来自 SQL Server 的数据。
【问题讨论】:
标签: vb.net sql-server-2008 c#-4.0
SQL Server 2008 - 表包含 nvarchar(max) 数据类型并存储没有 N' 前缀的印地语和英语数据。像 - “मांगलिक 欢迎”,但在餐桌商店中作为“׿¢»çÜ·¤ 欢迎”。
请指导如何在 .net 中显示来自 SQL Server 的数据。
【问题讨论】:
标签: vb.net sql-server-2008 c#-4.0
N 前缀仅表示字符串是 NVARCHAR 而不是 VARCHAR
默认情况下,C# 是 Unicode,因此您的数据将没问题。
事实上,重新阅读您的问题,我不确定您在问什么。
你是说你将数据存储在没有 N 前缀的数据库中吗?这是通过 .net 完成的吗?
你能把你的问题说清楚一点吗?
** 编辑
我不确定你能做到。非 Unicode 代码页之外的数据将丢失。
【讨论】:
首先尝试创建一个如图所示的表:
Create table TestLang (strText nvarchar(max))
接下来尝试插入值
insert into TestLang values ( N'मांगलिक')
insert into TestLang values ( N'Welcome')
现在尝试搜索如图所示的名称:
SELECT * FROM TestLang WHERE strText LIKE N'मां%'
更新:
如果你想显示数据试试这种方式:
string input = "0928;0940;0932;092E;";
Regex rx = new Regex(@"([0-9A-Fa-f]{4});");
string output = rx.Replace(input, match => ((char)Int32.Parse(match.Groups[1].Value, NumberStyles.HexNumber)).ToString());
Output: "नीलम"
取自 here
【讨论】: