将Java字节数组转换为UTF-8 Python字符串
我正在用Python的Requests库通过REST API获取JSON数据。可惜的是,其中一个字段包含了很多没有转义的控制字符,这导致JSON格式出错。
我无法控制这些数据,但我可以请求以字符串的形式获取未解码的数据,这些数据在应用程序中存储为Java的字节数组。
比如说: [B@1cf3bd82
我的问题是,如何将这个字符串解码回原来的UTF-8文本,以便我在处理JSON时使用?我找到的所有例子似乎都是处理字节对象,而不是编码后的字符串。
有什么想法吗?
1 个回答
1
你现在是在打印调用 toString()
方法后的 byte[]
的结果。这其实不是个好主意,因为数组并没有重写 toString()
方法。
你应该使用 new String(byte[], Charset)
这个构造函数:
String text = new String(bytes, StandardCharsets.UTF_8);
从问题中我不太清楚数据到底发生了什么,但基本上你需要修改 Java 代码 - 任何 Python 代码在这里可能都不相关。