【发布时间】:2020-11-10 19:41:06
【问题描述】:
我想解码来自 http 请求的响应。但是在编码为.utf8时出错
String(data: data, encoding: .utf8) 当数据包含德语变音符号时返回nil(Ü Ö Ä ü ö ä è é)
如何正确解码Data? 对象?
编辑: 提供更多细节
这就是我的回复的样子。我无法更改它来自与此类似的后端。
let string = """
{
"test":"Value",
"OperatingInfosQuotes":"\n<div id=\"div_operatinginfo_inner\">\n<div id=\"div_operatinginfo_title\"><b>Test</b></div>\n<div id=\"div_operatinginfo_content\">\n\n Ü Ö Ä ü ö ä è é\n\n</div>\n</div>\n"
}
"""
do {
let encode = try JSONDecoder().decode(TestObject.self, from: Data(string.utf8))
print(encode)
} catch {
print("Count not decode")
}
还有我的可编码对象:
struct TestObject: Codable {
var test: String
}
我该如何处理?
【问题讨论】:
-
这意味着 HTTP 响应不是 UTF-8 编码的,而是使用了一些不同的编码。
-
您的
data可能在Win-1252中。 -
试试
encoding: .windowsCP1252 -
您需要用一些样本数据edit您的问题,否则没有人能给您一个明确的答案。如果您对这些字符进行 UTF-8 编码,它们就可以很好地解码。问题很可能是您的数据不是 UTF-8 编码的,但如果不查看您的实际数据就无法判断。
-
你也可以尝试检测来自HTTP响应的编码,比较stackoverflow.com/a/32051684/1187415。
标签: swift encoding utf-8 diacritics