解码 UTF8 符号
Decode UTF8 symbols
我在swift中有一个字符串:
let flag = "Cattì ò"
我正在尝试转换 UTF8
符号。
我试过使用
stringByRemovingPercentEncoding
但注意到变化。如何正确转换符号?
欢迎来到编码猜谜游戏!看起来在路径的某个地方,您的字符串没有获得正确的代码页。这是一种猜测方式:
let flag = "Cattì ò"
let encodings = [NSASCIIStringEncoding,
NSNEXTSTEPStringEncoding,
NSJapaneseEUCStringEncoding,
NSUTF8StringEncoding,
NSISOLatin1StringEncoding,
NSSymbolStringEncoding,
NSNonLossyASCIIStringEncoding,
NSShiftJISStringEncoding,
NSISOLatin2StringEncoding,
NSUnicodeStringEncoding,
NSWindowsCP1251StringEncoding,
NSWindowsCP1252StringEncoding,
NSWindowsCP1253StringEncoding,
NSWindowsCP1254StringEncoding,
NSWindowsCP1250StringEncoding,
NSISO2022JPStringEncoding,
NSMacOSRomanStringEncoding,
NSUTF16StringEncoding,
NSUTF16BigEndianStringEncoding,
NSUTF16LittleEndianStringEncoding,
NSUTF32StringEncoding,
NSUTF32BigEndianStringEncoding,
NSUTF32LittleEndianStringEncoding]
for encoding in encodings {
if let bytes = flag.cStringUsingEncoding(encoding),
flag_utf8 = String(CString: bytes, encoding: NSUTF8StringEncoding) {
print("\(encoding): \(flag_utf8)")
}
}
数组包含所有encodings that Cocoa supports。
从结果来看,您的字符串似乎是在 NSISOLatin1StringEncoding
(a.k.a ISO-8859-1) 中编码的,这是 HTML 4.01 的默认编码。这给出了 UTF-8 中的 Cattì ò
,与您想要的结果不完全匹配,但在所有代码页中是最接近的。
其他好的候选者是 NSWindowsCP1252StringEncoding
和 NSWindowsCP1254StringEncoding
所以我建议您检查其他字符串。
我在swift中有一个字符串:
let flag = "Cattì ò"
我正在尝试转换 UTF8
符号。
我试过使用
stringByRemovingPercentEncoding
但注意到变化。如何正确转换符号?
欢迎来到编码猜谜游戏!看起来在路径的某个地方,您的字符串没有获得正确的代码页。这是一种猜测方式:
let flag = "Cattì ò"
let encodings = [NSASCIIStringEncoding,
NSNEXTSTEPStringEncoding,
NSJapaneseEUCStringEncoding,
NSUTF8StringEncoding,
NSISOLatin1StringEncoding,
NSSymbolStringEncoding,
NSNonLossyASCIIStringEncoding,
NSShiftJISStringEncoding,
NSISOLatin2StringEncoding,
NSUnicodeStringEncoding,
NSWindowsCP1251StringEncoding,
NSWindowsCP1252StringEncoding,
NSWindowsCP1253StringEncoding,
NSWindowsCP1254StringEncoding,
NSWindowsCP1250StringEncoding,
NSISO2022JPStringEncoding,
NSMacOSRomanStringEncoding,
NSUTF16StringEncoding,
NSUTF16BigEndianStringEncoding,
NSUTF16LittleEndianStringEncoding,
NSUTF32StringEncoding,
NSUTF32BigEndianStringEncoding,
NSUTF32LittleEndianStringEncoding]
for encoding in encodings {
if let bytes = flag.cStringUsingEncoding(encoding),
flag_utf8 = String(CString: bytes, encoding: NSUTF8StringEncoding) {
print("\(encoding): \(flag_utf8)")
}
}
数组包含所有encodings that Cocoa supports。
从结果来看,您的字符串似乎是在 NSISOLatin1StringEncoding
(a.k.a ISO-8859-1) 中编码的,这是 HTML 4.01 的默认编码。这给出了 UTF-8 中的 Cattì ò
,与您想要的结果不完全匹配,但在所有代码页中是最接近的。
其他好的候选者是 NSWindowsCP1252StringEncoding
和 NSWindowsCP1254StringEncoding
所以我建议您检查其他字符串。