gpt4 book ai didi

swift - 编写 BOM 以在 Swift 中流式传输

转载 作者:行者123 更新时间:2023-11-28 14:12:36 25 4
gpt4 key购买 nike

如何将 BOM 写入 swift 流?我需要它来将文件导出到 excel。

我做了什么,但没有起作用(输出中写入了错误的数据):

let BOM = "\u{FEFF}"
var path = docPath + "/list.csv"

let stream = OutputStream(toFileAtPath: path, append: false)

stream?.open()
var i1:UInt8=254
var i2:UInt8=255
stream?.write(&i1, maxLength: 1)
stream?.write(&i2, maxLength: 1)

最佳答案

尝试这样的事情。假设您要为 MS-Excel 创建一个 UTF-8 格式的 CSV 文件。

var path = docPath + "/list.csv"

if let stream = OutputStream(toFileAtPath: path, append: false) {
stream.open()
let BOM = "\u{FEFF}"
stream.write(BOM, maxLength: 3) //BOM in UTF-8 is made of 3 bytes.
//...
} else {
print("Failed to create OutputStream:", path)
}

直接将 Swift String 传递给 write(_:maxLength:) (第一个参数的类型是 UnsafePointer<UInt8> ),Swift 会生成字符串的临时 UTF-8 表示形式,因此如果您想以 UTF-8 格式创建文件,它可能会起作用。

使用此代码时,需要将所有项目以UTF-8格式输出,部分项目需要转义。我希望你对这些事情了如指掌。

此代码适用于日语本地化的 MS-Excel,但我不确定它是否适用于其他本地化版本。

关于swift - 编写 BOM 以在 Swift 中流式传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52413979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com