Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从sql发送到手机的乌尔都语消息格式不可读_C#_Sql_Asp.net_.net_Urdu - Fatal编程技术网

C# 从sql发送到手机的乌尔都语消息格式不可读

C# 从sql发送到手机的乌尔都语消息格式不可读,c#,sql,asp.net,.net,urdu,C#,Sql,Asp.net,.net,Urdu,我将乌尔都语文本分配给c#中的一个变量,并将其插入数据库(SendMessages表),它可以完美地保存乌尔都语消息,无需任何修改,但当任何手机接收到该消息时,它会显示为?,为什么?我用所有与乌尔都语兼容的手机检查了一下,这些手机都能完美地接收其他乌尔都语信息,但不是这一个 代码asp.net: String MessageLanguage= Convert.ToString(ViewState["LanguageCode"]); // if (

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

为什么??帮忙?
我在sql server 2014中使用asp.net C#.net 4.0。

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

可以在数据库中使用
varchar
,并按照以下步骤操作

  • 使用base 64将数据保存到数据库中
  • 使用
    Encoding.UTF8
    获取字节并将其转换为
    Base64
  • 从数据库获取数据时,请使用
    Encoding.UTF8.GetString(Convert.FromBase64String(“value”)
    并使用此值显示

  • 这听起来像是一个编码错误。你是在乌尔都语上有这个问题,还是在其他字母表上也遇到了这个问题,比如阿拉伯语、东方汉字、印度教等等?除了英语以外的所有语言我不是100%确定,但你的抱怨码似乎是用ASCII编码的,ASCII只能正确显示拉丁字符。因此,你的乌尔都语sg也是ASCII格式的。那些乌尔都语消息可以工作,您是否也将它们与另一个字符串连接起来?编辑:这是您的问题。varchar不支持非拉丁字符。请尝试将其更改为nvarchar。好的,请等待我的更改,但为什么sql记录以乌尔都语(而非移动)显示确切的消息,一开始它应该在db lev产生问题使用Nvarchar的eli am(1600)如果你对VARCHAR使用乌尔都语排序,它应该显示乌尔都语。在Datbase中,它不在手机中,虽然我的手机接收其他乌尔都语消息,但没有从手机发送的乌尔都语消息。它不工作,将数据保存为数据库中字母数字字符的长字符串。长字符串是以64为基数表示的现在正在渲染什么?它正在数据库中渲染YU98YHR9H93H99HD9H9ASH9DHAS9YR090U0USJAOSFHIEW8HW之类的东西