c# - 从 asp.net POST 方法返回 JSON 时出现 "Unable to translate Unicode character\\uD83C"错误

标签 c# asp.net-mvc post unicode json.net

我在 MVC 项目中开发了一个 web api。我在我的 post 方法中返回一个 JToken 对象。通常我的 api 工作正常,但有时在特定数据中我会收到此错误:

  "Message": "An error has occurred.",
  "ExceptionMessage": "The 'ObjectContent`1' type failed to serialize the response body for content type 'application/json; charset=utf-8'.",
  "ExceptionType": "System.InvalidOperationException",
  "StackTrace": null,
  "InnerException": {
  "Message": "An error has occurred.",
  "ExceptionMessage": "Unable to translate Unicode character \\uD83C 
   at index 411 to specified code page."

这是我的发帖方式

public JToken Post([FromBody]Classes.Search search)
    {

        Classes.ReturnSearch returnSearch = new Classes.ReturnSearch();
        try
        {
            string con = System.Configuration.ConfigurationManager.ConnectionStrings["TConnectionString"].ConnectionString;
            SqlConnection cn = new SqlConnection(con);
            SqlDataAdapter sqlDataAdapter = new SqlDataAdapter("SP_Searchi", cn);
            sqlDataAdapter.SelectCommand.CommandType = CommandType.StoredProcedure;
            sqlDataAdapter.SelectCommand.Parameters.Add(new SqlParameter("@word", search.word));

            sqlDataAdapter.SelectCommand.Parameters.Add(new SqlParameter("@num", search.num));
            DataSet d = new DataSet();
            sqlDataAdapter.Fill(d);
            DataTable table = d.Tables[0];

            foreach(DataRow row in table.Rows)
            {
                string result=row[1].ToString();

                returnSearch.search_items.Add(new Classes.SearchItem(row[0].ToString(), row[1].ToString(),search.word));
            }
            returnSearch.status = "Success";


            return JObject.Parse(JsonConvert.SerializeObject(returnSearch));
        }
        catch (Exception e)
        {
            returnSearch.status = "Failed";
            returnSearch.search_items = null;
            ValuesController.Log("Error in Search: "+e.Message);
            return JObject.Parse(JsonConvert.SerializeObject(returnSearch));
        }


    }

有什么问题?!

最佳答案

这是一个表情符号修改器。您可能会在解析输入的表情符号后看到它(可以拆分为多个\u#### 实例)。

关于c# - 从 asp.net POST 方法返回 JSON 时出现 "Unable to translate Unicode character\\uD83C"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38295824/

相关文章:

c# - 如何将我的类变量属性放入 Winform 控件中?

c# - 有谁知道 EF Core 3.0 中的 IPluralizer、ICandidateNamingService 和 CandidateNamingService 发生了什么?

c# - .NET 中两个字符串的逐字差异比较

asp.net-mvc - 在 web.config 文件中全局验证文本框控件的 html 标记输入

jquery - 使用 Fileupload asp.net mvc 和 Jquery 预览图像

javascript - 将 C# List<string> 转换为 Javascript

post - 如何使用 traefik 记录 request_body?

c# - 在哪种情况下 c++/c# 命名空间方法比 Java 方法更好?

php - 将PHP代码重写为Python(POST请求)

c++ - HTTP POST 中缺少内容类型。 QT使用Webview