2017-02-27 48 views
1

我在我的MsSql数据库中有一些数据,并通过Csharp Web Apis将它们发送到我的Android应用程序。 nvarchar字段中有一些unicode字符。字符串数据的中间。例如:'F \ u2081大于F''我怎样才能摆脱我在数据库中保存的双字(\)

数据继续以移动应用程序为“F \ u2081大于F \ u2082”。所以unicode字符永远不会成功显示。

我搜索并尝试了很多方法,但迄今为止没有成功。 您可以测试并查看web api的结果(帖子) http://www.kelimex.com.tr/teogapi/api/Fen

在结果视图中,“消息”字段数据来自数据库。 但是,“解释”字段数据由我在web api的源代码中输入。

正如你所看到的,在“解释”字段中没有问题。但是“消息”字段不断显示不正确。

有没有人在这个问题上有任何经验?

这是csharp代码,它从Sql中提取数据并返回web api列表。目前没有编码解码等等......无论如何它们都无法工作。

public List<Result> test() 
    { 
     List<Result> list = new List<Result>(); 
     if (ConnectToDB()) 
     { 
      try 
      { 
       DataSet ds = new DataSet(); 
       SqlDataAdapter da = new SqlDataAdapter("__tm_test", conn); 
       da.SelectCommand.CommandType = CommandType.StoredProcedure; 

       da.Fill(ds, "ds"); 
       if (ds.Tables.Count > 0) 
       { 
        Result item = new Result(); 

        item.statusCode = 1; 
        item.status = true; 
        item.message = ds.Tables[0].Rows[0]["FieldNVarchar"].ToString(); 
        item.explanation = "F\u2081 is greater than F\u2082"; 

        list.Add(item); 
       } 
       ds.Dispose(); 
       da.Dispose(); 

      } 
      catch (Exception e) 
      { 
      } 
     } 
     return list; 
    } 

回答

0
You should use HttpUtility.UrlEncodeUnicode and HttpUtility.UrlEncode for text you are setting a variable. Please check the below example: 

    //Encode a text 
    var myText = HttpUtility.UrlEncodeUnicode(MyText) 

    //And Decode text you are getting 

    var MyTextNew = HttpUtility.UrlEncode(text) 
+0

我试图在网络API使用HttpUtility.UrlEncodeUnicode和HttpUtility.UrlEncode UTF-8,并使用URLDecoder.decode UTF-8,UTF-16和Unicode Android中的java解析数据。没有成功。 – Yavuz