我正在将乌尔都语文本分配给c#中的变量并将其插入数据库(SendMessages表),它可以完美地保存乌尔都语消息而无需任何修改,很棒但是当在任何移动手机中收到该消息时它会显示为??? ???????????????????????我用所有兼容手机的手机检查了它,这些手机完全接收了其他乌尔都语信息但不是这个。
代码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)
为什么?救命 ?我正在使用asp.net C#.net 4.0和sql server 2014。
答案 0 :(得分:0)
我不确定,但您可以尝试插入命令的N
参数。
例如使用:
insert into tableName(name) values(N'"+درج کردی+"')