我有一个包含这个字符串的文件:
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
我该怎么做?
最佳答案
首先将您的 String
转换为 Int
并告诉 Int
它以 16 为基数,然后创建一个 UnicodeScalar
从 Int
,最后从 UnicodeScalar
创建 Character
:
let code = "00e3"
let character = Character(UnicodeScalar(Int(code, radix: 16)!))
如果您希望使用 String
而不是 Character
,则:
let string = String(UnicodeScalar(Int(code, radix: 16)!))
关于swift - 如何在 Swift 2.1 中动态创建角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35104791/