如何摆脱我保留在数据库中的双\字符(\\)

时间:2017-02-27 09:41:12

标签: c# sql-server web-services unicode-string

我的MsSql数据库中有一些数据,并通过Csharp Web Apis将它们发送到我的Android应用程序。 nvarchar字段中有一些unicode字符。字符串数据中间有。例如:' F \ u2081大于F \ u2082'

数据继续移动到移动应用程序,因为" F \ u2081大于F \ u2082" 。因此,unicode字符永远不会成功显示。

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

在结果视图中," message"字段数据来自数据库。 但是"解释"字段数据由我在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;
    }

1 个答案:

答案 0 :(得分: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)