我有一个包含此字符串的文件:
N\u00e3o informado
比我读它并输入变量
let myString = NSString(contentsOfFile: filename, encoding: NSUTF8StringEncoding)
print(mystring) // get "N\u00e3o informado"
然后我想将\u00e3
转换为您的unicode值= ã
。我在Swift Book中读到了这一行:
let text = "Voulez-vous un caf\u{65}\u{301}?"
我尝试动态创建相同的东西,但它没有用:
let substring = "00e3"
dinamic = "N\u{\(substring)}o informado" //This produce the equivalent
print(dinamic) // get "N\u{00e3}o informado" but I want "Não informado"
以同样的方式,这不起作用
let code = "00e3"
let caracter = Character("\u{\(code)}") //compile error
let caracter = Character("\\u{\(code)}") //runtime error
let number = 00e3
let caracter = Character(number) //compile error
let caracter = Character("\u{00e3}") //This work, but isn't dinamic
我该怎么做?
答案 0 :(得分:1)
首先将您的String
转换为Int
告诉Int
它位于16位,然后从UnicodeScalar
创建Int
,最后创建来自Character
的{{1}}:
UnicodeScalar
如果您希望拥有let code = "00e3"
let character = Character(UnicodeScalar(Int(code, radix: 16)!))
而不是String
,那么:
Character