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

Swift读取含印地语、古吉拉特语的xls文件编码问题求助

解决方案:正确读取含非英文字符的XLS文件

你当前的方法错误在于直接把二进制XLS文件当作纯文本读取——XLS是基于OLE2复合文档的二进制格式,并非纯文本流,无论选哪种字符串编码,都无法正确解析其中的印地语、古吉拉特语等非英文字符。

必须使用专门的XLS解析库处理文件的二进制结构,才能正确提取并解码多语言文本。以下是具体实现:

使用Swift封装的XLS解析库(XLSParser)

1. 添加依赖

通过Swift Package Manager或CocoaPods引入XLSParser:

  • Swift Package Manager:在Xcode项目的Package Dependencies中搜索XLSParser并添加
  • CocoaPods:在Podfile中添加pod 'XLSParser',执行pod install

2. 解析代码示例

import XLSParser

do {
    // 读取XLS文件二进制数据
    let data = try Data(contentsOf: url)
    // 初始化解析器并解析文件
    let parser = try XLSParser(data: data)
    
    // 遍历所有工作表
    for sheet in parser.sheets {
        print("工作表名称:\(sheet.name)")
        
        // 遍历每行,提取单元格内容
        for row in sheet.rows {
            let rowContents = row.cells.compactMap { $0.value }
            print(rowContents.joined(separator: "\t"))
        }
    }
} catch {
    print("解析失败:\(error.localizedDescription)")
}

原理说明

XLS文件内部以二进制结构存储数据,非英文字符通常以UTF-16或专用编码封装在单元格数据段中。专业解析库会解析这些二进制结构,定位到文本数据并完成正确解码,彻底解决乱码问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 04:18:17