swift - 如何在 Swift 2.1 中动态创建角色

标签 swift character-encoding

我有一个包含这个字符串的文件:

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 为基数,然后创建一个 UnicodeScalarInt,最后从 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/

相关文章:

php - mysql下发一个 'Can' t初始化字符集utf-8(路径:/usr/share/mysql/charsets/)' error,那里没有utf8.xml文件

java - 将包含德语字符的 ANSI 文件转换为 UTF8

matlab - 如何在 Matlab R2012b 的绘图中获取斯堪的纳维亚字母 ä 和 ö

python - Flask-如何处理URL中的中文字符

swift - 快速复制所有结构的写入吗?

ios - 由于 cocoa pod 中的内部保护错误快速类功能而无法访问

ios - 不需要更新 Realm 中的对象

java - 如何为 Java CharsetDecoder 生成 'un-mappable' 输入?

json - 如何在 Swift 中解码 HTML 实体?

ios - 如何在 iOS swift 中正确记录带有完成处理程序的方法