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

Saxonche Python处理含非ASCII字符文件名报错求助

解决Saxon在Windows下无法识别含非ASCII字符文件名的问题

在Windows 10环境使用Saxon 12.4.2的Python绑定saxonche时,若传入含非ASCII字符的文件名(如Ä.xml)调用parse_xml方法,会因文件名编码转换错误导致无法找到文件,报错信息显示文件名被转为Ä.xml。

解决方案

绕开文件名参数的编码问题,直接传入二进制文件流给parse_xml的source参数:

from saxonche import PySaxonProcessor

with PySaxonProcessor(license=False) as proc:
    xsltproc = proc.new_xslt30_processor()
    # 以二进制模式打开文件,避免编码转换问题
    with open("Ä.xml", "rb") as xml_file:
        xml = proc.parse_xml(source=xml_file)

原因说明

Windows文件系统使用UTF-16存储文件名,但Saxon的xml_file_name参数在Windows平台会错误地将Python的UTF-8字符串转换为系统ANSI编码(如cp1252),导致非ASCII字符乱码,最终无法定位到目标文件。通过直接传入二进制文件流,跳过了文件名的编码转换步骤,确保Saxon能正确读取文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 07:24:53