乌尔都语语言问题,base64存储长不可读的字符串

时间:2014-09-09 12:00:17

标签: c# sql asp.net .net

我正在将乌尔都语文本分配给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。

1 个答案:

答案 0 :(得分:0)

我不确定,但您可以尝试插入命令的N参数。

例如使用:

insert into tableName(name) values(N'"+درج کردی+"')