以nvarchar数据类型显示hindi数据存储,不带N前缀

时间:2013-09-26 09:10:41

标签: vb.net sql-server-2008 c#-4.0

SQL Server 2008 - 表包含nvarchar(max)数据类型并存储hindi&没有N'前缀的英文数据。喜欢 - “मांगलिकwelcome”但在桌面商店中作为“×梻ÜÜ·¤欢迎”。

请指导如何在.net中显示来自SQL Server的数据。

2 个答案:

答案 0 :(得分:0)

N前缀仅表示字符串是NVARCHAR而不是VARCHAR

See this for more info

默认情况下,C#是Unicode,因此您的数据可以正常使用。

事实上,重新阅读你的问题,我不确定你在问什么。

您是说您将数据存储在没有N前缀的数据库中?这是通过.net吗?

完成的

你能否让你的问题更清楚?

**编辑

我不确定你能不能。非Unicode代码页之外的数据将丢失。

Check this page here for further details

答案 1 :(得分:0)

首先尝试创建一个如下所示的表:

<强> 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