【问题标题】:Display hindi data store in nvarchar datatype without N prefix以不带 N 前缀的 nvarchar 数据类型显示印地语数据存储
【发布时间】:2013-09-26 09:10:40
【问题描述】:

SQL Server 2008 - 表包含 nvarchar(max) 数据类型并存储没有 N' 前缀的印地语和英语数据。像 - “मांगलिक 欢迎”,但在餐桌商店中作为“׿¢»çÜ·¤ 欢迎”。

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

【问题讨论】:

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


    【解决方案1】:

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

    See this for more info

    默认情况下,C# 是 Unicode,因此您的数据将没问题。

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

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

    你能把你的问题说清楚一点吗?

    ** 编辑

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

    Check this page here for further details

    【讨论】:

    • 问题是如何在.net中以原始格式显示来自sql server的数据。
    • 我刚刚得到了数据存储的数据库,就像我提到的那样......现在我想读取相同的内容并使用 .net 显示。
    【解决方案2】:

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

    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

    【讨论】:

    • 以这种方式工作..但表已经有数据(׿¢»çÜ·¤欢迎)不使用N'前缀。指导如何显示数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    • 2015-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    相关资源
    最近更新 更多