SQL Server 2008 - 表包含 nvarchar(max) 数据类型并存储没有 N' 前缀的印地语和英语数据。像 - “मांगलिक 欢迎”,但在餐桌商店中为“×梻çÜ·¤ 欢迎”。
请指导如何在 .net 中显示来自 SQL Server 的数据。
SQL Server 2008 - 表包含 nvarchar(max) 数据类型并存储没有 N' 前缀的印地语和英语数据。像 - “मांगलिक 欢迎”,但在餐桌商店中为“×梻çÜ·¤ 欢迎”。
请指导如何在 .net 中显示来自 SQL Server 的数据。
首先尝试创建一个表,如图:
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: "नीलम"
从这里取
N 前缀仅表示字符串是 NVARCHAR 而不是 VARCHAR
默认情况下,C# 是 Unicode,因此您的数据会正常。
事实上,重新阅读你的问题我不确定你在问什么。
您是说将数据存储在没有 N 前缀的数据库中吗?这是通过 .net 完成的吗?
你能把你的问题说得更清楚吗?
** 编辑
我不确定你能不能。非 Unicode 代码页之外的数据将丢失。