无法使用 UTF8 编码转换 HttpResponseMessage

2023-12-21

我正在努力解决通常的转换问题,但不幸的是我无法找到适合我的具体问题的任何内容。

我的应用程序正在从 php 服务器接收 System.Net.Http.HttpResponseMessage,UTF8 编码,包含一些字符,如 \u00c3\u00a0 (à),但我无法转换它们。

string message = await result.Content.ReadAsStringAsync();
byte[] messageBytes = Encoding.UTF8.GetBytes(message);
string newmessage = Encoding.UTF8.GetString(messageBytes, 0, messageBytes.Length);

这只是我的尝试之一,但没有任何反应,生成的字符串仍然具有 \u00c3\u00a0 字符。

我也读过一些答案,例如如何将 UTF-8 字符串转换为 Unicode? https://stackoverflow.com/questions/11293994/how-to-convert-a-utf-8-string-into-unicode但这个解决方案对我不起作用。这是解决方案代码:

public static string DecodeFromUtf8(this string utf8String)
{
   // copy the string as UTF-8 bytes.
   byte[] utf8Bytes = new byte[utf8String.Length];
   for (int i=0;i<utf8String.Length;++i) {
      //Debug.Assert( 0 <= utf8String[i] && utf8String[i] <= 255, "the char must be in byte's range");
      utf8Bytes[i] = (byte)utf8String[i];
   }

   return Encoding.UTF8.GetString(utf8Bytes,0,utf8Bytes.Length);
}

DecodeFromUtf8("d\u00C3\u00A9j\u00C3\u00A0"); // déjà

我注意到,当我使用像这样的简单字符串尝试上述解决方案时

string str = "Comunit\u00c3\u00a0"

the 从Utf8解码方法工作完美,问题是当我使用我的回复消息时。

任何建议将不胜感激


我自己解决了这个问题。我发现服务器响应是 utf-8 json 的 ISO 字符串,因此我必须删除 json 转义字符,然后将 iso 转换为 utf8

所以我必须执行以下操作:

private async Task<string> ResponseMessageAsync(HttpResponseMessage result)
{
    string message = await result.Content.ReadAsStringAsync();
    string parsedString = Regex.Unescape(message);
    byte[] isoBites = Encoding.GetEncoding("ISO-8859-1").GetBytes(parsedString);
    return Encoding.UTF8.GetString(isoBites, 0, isoBites.Length);
 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 UTF8 编码转换 HttpResponseMessage 的相关文章

随机推荐

  • 使用 CRF 进行多元二元序列预测

    这个问题是一个延伸this one https stackoverflow com questions 53977695 multivariate binary sequence prediction with lstm其重点是 LSTM
  • Typescript Promise 拒绝和 vscode 调试器行为

    我正在尝试使用打字稿学习承诺 但我遇到了一些问题 无法理解导致此类 vscode 调试行为的原因 这是一个例子 example 1 new Promise resolve reject gt reject test1 debugger st
  • Lock.__enter__() 和 Condition.__enter__() 的文档

    我试图找到哪里 enter and exit Python 2 7 记录了线程化对象的方法 这主文档页面 https docs python org 2 7 library threading html condition objects关
  • 可以判断哪个工作簿调用了 Excel 加载项中的函数 (xla)

    我想在 Excel 加载项中编写一个小日志记录函数 我将从许多不同的工作簿中调用该函数 我希望能够通过仅传递日志文本来调用它 并且日志函数本身可以处理时间戳 工作簿名称 etc 但是 我无法使用 ThisWorkbook 或 ActiveW
  • 如何实现基于Python的四连棋检查胜负的功能?

    我正在编写一个 Connect 4 游戏 您可以在其中选择棋盘的大小 该游戏适用于大多数棋盘尺寸 但当棋盘比宽高时就会出现问题 我不断收到索引超出范围的错误 我不确定我做错了什么 这就是我现在的检查功能 因为它是唯一给我带来问题的部分 de
  • 如何获取 TensorFlow 数据集每个类的样本

    我正在使用 TensorFlow 数据集中的数据集 有没有一种简单的方法来访问数据集中每个类的样本数量 我正在搜索 keras api 但没有找到任何可以使用的函数 最终我想绘制一个条形图 其中 Y 轴为样本数 X 轴为 int 指示类 I
  • 计算剩余时间?

    我有一个这样生成的时间 SimpleDateFormat dateFormatUCT new SimpleDateFormat yyyy MM dd HH mm dateFormatUCT setTimeZone TimeZone getT
  • 使用 Castle ActiveRecord 插入多行并忽略任何重复的推荐方法

    我有一个 webmethod 可以将一堆菜谱插入到数据库的队列中 用于存储用户有兴趣烹饪的菜谱 类似于 NetFlix 的电影队列 用户可以一次检查一堆食谱并将其排队 我有类似这样的代码 WebMethod public void Enqu
  • 发送带有标头的 HTTP GET 请求

    我想从我的 Android 应用程序请求带有 GET 参数的 URL 并读取响应 在请求中我必须添加一个x zip header 网址是这样的 http example com getmethod aspx id 111 method Te
  • “on”和“live”或“bind”有什么区别?

    在 jQuery 中v1 7一种新方法 on http api jquery com on 加入 从文档中 on 方法将事件处理程序附加到 jQuery 对象中当前选定的元素集 从 jQuery 1 7 开始 on 方法提供了附加事件处理程
  • c中malloc()和free()的正确使用

    我是 C 新手 所以如果这太明显了 请原谅我 但我在查找代码中导致分段错误的错误时遇到了问题 我相信问题可能出在 malloc 的使用上 但我并不肯定 这是代码 include
  • 动态添加名称以数值开头的变量

    我注意到 如果我尝试创建一个具有以数值开头的键名称的对象 则会抛出错误 这与此处概述的 JavaScript 命名一致 哪些字符对于 JavaScript 变量名有效 https stackoverflow com q 1661197 36
  • C++ 标准中的 if..else 语句

    来自 C 标准第 6 4 1 节 if 语句 如果条件 6 4 为真 则执行第一个子语句 如果选择的 else 部分 语句存在并且条件产生 false 第二个 子语句被执行 在 if 语句的第二种形式中 包括 else 如果第一个子语句也是
  • 根据AMD64 ABI,什么样的C11数据类型是数组

    我正在研究 OSX 上使用的 x86 64 的调用约定 并正在阅读 聚合和联合 部分System V x86 64 ABI 标准 http www x86 64 org documentation abi pdf 它提到了数组 我认为这就像
  • 当AllowsTransparency =“True”时,wpf WindowsFormsHost 不可见

    有人在这里解决了这个问题http social msdn microsoft com forums en US wpf thread 6f9dd3b5 af92 4076 9b4e 1a770dd52f70 http social msdn
  • 如何将 folium.icon 与 fontawesome 一起使用

    我希望使用自定义的 fontawesome 图标 谢谢 我想使用 fontawesome 图标更改 folium icon 中的图标 例如 我想改变这个 import folium m folium Map location 25 0431
  • 如何在 PySpark 2.x 中使用修剪?

    Code is from pyspark sql import functions as F df df select F trim MyColumn 错误是 Py4JError An error occurred while callin
  • 使用 CMake,如何从 CTest 获取详细输出?

    我正在使用 CMake 来构建我的项目 我添加了一个使用 Boost 单元测试框架的单元测试二进制文件 这一二进制文件包含所有单元测试 我添加了由 CTest 运行的二进制文件 ADD EXECUTABLE tftest test main
  • WPF 中的日历和日期选择器控件之间的区别?

    WPF 中的日历和日期选择器控件之间的区别 选择其中任何一个有什么标准吗 Per the 日期选择器文档 http msdn microsoft com en us library system windows controls datep
  • 无法使用 UTF8 编码转换 HttpResponseMessage

    我正在努力解决通常的转换问题 但不幸的是我无法找到适合我的具体问题的任何内容 我的应用程序正在从 php 服务器接收 System Net Http HttpResponseMessage UTF8 编码 包含一些字符 如 u00c3 u0