当存在特殊字符时,CSV 到 XML 的转换在 Saxon 中失败

CSV to XML transformation fails in Saxon when special characters are present

我正在评估Andrew Welch's CSV to XML-Converter in XSLT 2.0:

到目前为止,如果我像这样转换没有特殊字符的 CSV,它对我有用:

ID,    Title, Type
152733,Test1,Type1
152757,Test3,Type2
152759,Test4,Type2

但是如果我尝试像这样用德语 "Umlaut" 转换 CSV:

ID,    Title,Type
152733,Test1,Type1
152757,Test3,Type2
152759,Täst4,Type2

输出为"Cannot locate : test12.csv".

所以在我看来,如果文本包含特殊字符,函数 fn:unparsed-text-available 将不起作用。知道如何解决这个问题吗?

Saxon 版本为 Saxon-HE 9.7.0.1。

将文件编码传给unparsed-text()

我正在做一个有根据的猜测(*)

<xsl:variable name="csv" select="unparsed-text($pathToCSV, 'Windows-1252')" />

(*) UTF-8 是 unparsed-text()$encoding 参数的默认值。这意味着如果读取文件失败,那么它显然不是 UTF-8,而是传统(即单字节)编码。德语变音符号表明该文件是在典型的 "Western Europe" 配置中创建的,其中 Windows-1252iso-8859-1 是默认的旧编码。