You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何将字符串字符转换为UTF-8编码整数?

解决方法

错误原因

你之前的代码里,String(character).utf8返回的是String.UTF8View(一个UTF-8字节的集合),并非单个整数类型,直接调用append会因类型不匹配报错。

正确实现

方式1:处理所有UTF-8字节(支持多字节字符)

如果文件名可能包含中文、emoji这类多字节字符,它们的UTF-8编码由多个字节组成,需要把每个字节都存入数组:

for fileName in allNoteFiles {
    var utf8CodeArray: [Int] = []
    
    for character in fileName {
        // 遍历当前字符的所有UTF-8字节
        for utf8Byte in character.utf8 {
            utf8CodeArray.append(Int(utf8Byte))
        }
    }
    // 后续使用utf8CodeArray的逻辑
}

方式2:仅取每个字符的第一个UTF-8字节(适合单字节字符)

如果确定文件名只有ASCII范围内的字符(数字、英文字母、常见符号),每个字符的UTF-8编码仅一个字节,可直接取第一个字节:

for fileName in allNoteFiles {
    var utf8CodeArray: [Int] = []
    
    for character in fileName {
        // 取出字符的第一个UTF-8字节并转成Int
        if let firstUtf8Byte = character.utf8.first {
            utf8CodeArray.append(Int(firstUtf8Byte))
        }
    }
    // 后续使用utf8CodeArray的逻辑
}

补充说明

  • Swift的Character类型自带utf8属性,无需先转成String,效率更高。
  • character.utf8返回的集合中,每个元素是UInt8类型,转成Int即可存入你的数组。

内容的提问来源于stack exchange,提问作者TrappinNachos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 04:06:36