【发布时间】:2014-09-09 12:00:16
【问题描述】:
我将乌尔都语文本分配给 c# 中的变量并将其插入数据库(SendMessages 表),它完美地保存乌尔都语消息而无需任何修改,很好,但是当任何手机收到该消息时,它会显示为 ??? ???????????????????, 为什么 ?我检查了所有兼容 urdu 的手机,它们可以完美接收其他 urdu 消息,但不是这个。
代码asp.net:
String MessageLanguage= Convert.ToString(ViewState["LanguageCode"]); //
if (MessageLanguage == "ur")
{
String UrduMsg = ComplaintCode +" "+"اپکی سثیکایت درج کردی گیؑ ھے۔ سثیکایت کوڈ یہ ہے";
quebiz.Insert(lblContact.Text, UrduMsg, null, Convert.ToInt32(lblComplainantID.Text), null, null);
ViewState["LanguageCode"] = null;
}
简而言之,从 C# 传递到 sql 表的 urdu 消息是完美的,没有问题,但是在手机中接收到相同的短信后,它就不能那样工作了。我试过base64转换像
String UrduMsg = ComplaintCode +" "+"اپکی سثیکایت درج کردی گیؑ ھے۔ سثیکایت کوڈ یہ ہے";
var UrduMsgBytes = System.Text.Encoding.UTF8.GetBytes(UrduMsg);
var Base64EncodedUrduMsg = Convert.ToBase64String(UrduMsgBytes);
但它导致在数据库中保存一个长字符串,就像它呈现yu98yhr9h93h99hd9h9ash9dhas9yr090u0usjaosfhiehhw8hw一样。
列上的排序规则为 ON,列为 Nvarchar(1600)。
为什么 ?帮助 ?我在 sql server 2014 中使用 asp.net C#.net 4.0。
【问题讨论】:
-
您将字符串存储在数据库中,当您读取它时,?????会出现吗?
-
没有出现在手机中,只是“?????????????????????”标记出现
-
您是否使用 N 将数据插入 SQL Server?我不确定,但也许你的问题就是因为这个。
-
例如:
insert into tableName(name) values(N'"+درج کردی+"') -
请不要发布重复的问题。这似乎与此相同:stackoverflow.com/questions/25720874/… 您需要按照每个问题得出结论,不要只问一个新问题。