2

我将乌尔都语文本分配给 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 消息很好而且完美,没有问题,但是在手机中接收到相同的短信后,它就不能那样工作了。

为什么 ?帮助 ?我将 asp.net C#.net 4.0 与 sql server 2014 一起使用。

4

2 回答 2

0

可以varchar在您的数据库中使用一个想法并按照步骤操作

  1. 使用base 64将数据保存到数据库中
  2. 用于Encoding.UTF8获取字节并将它们转换为Base64
  3. 当从数据库中获取数据时使用Encoding.UTF8.GetString(Convert.FromBase64String("value")并使用这个值来显示。
于 2014-09-08T10:15:48.163 回答
0

根据您的评论,您正在使用 varchar 将消息存储在数据库中。但是,varchar 不支持 Unicode,这意味着任何非拉丁字符(英语使用的字符)都无法正确显示。将其更改为支持 Unicode 的 nvarchar。

于 2014-09-08T09:57:01.323 回答