我的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;
}
答案 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)