解码swift中的UTF-8编码字符串



我有一个变量x类型的字符串包含一个UTF-8编码的文本。这个文本不需要编码,因为它已经被编码了,所以它变得很奇怪

print(x)
// >>> æ空観å¯ã«æé©ãªã­ã±ã¼ã·ã§ã³

我想解码这个文本从UTF-8到正常文本,就像我可以在这个页面上做的>>链接

我无法在swift中找到解决方案。这可能吗?如果是,请怎么做?

文本应该是这样的

星空観察に最適なロケーション

我有一个变量x类型的字符串,包含一个UTF-8编码的文本

字符串在Swift中的工作方式不同。由String类来选择如何在内部存储字符。

String类的方法和属性要么是编码无关的(即无论内部如何存储它们都是相同的),要么是非常明确的编码。

如果你有UTF-8编码的数据,你应该把它当作一个字节数组或Data实例,然后像这样传递给String类:

let bytes = // UInt8 array with UTF-8 encoded text
let string1 = String(bytes: bytes, encoding: .utf8)
let data = ... // some Data instance with UTF-8 encoded text
let string2 = String(data: data, encoding: .utf8)

尽管这两个字符串都是用UTF-8编码的数据创建的,但String类可以将其转换为不同的内部格式。

首先没有说明如何创建字符串。这可能就是出问题的地方。

最新更新