用于XSLT 2.0的输入文件的编码功能unparsed-text()

时间:2014-03-21 11:58:15

标签: encoding markdown xslt-2.0 saxon xpath-2.0

让我们说file.md编码UTF-8(.md表示它的降价格式)

Hello world
This text is encoded in UTF-8.

然后我使用函数unparsed-text('file.md', 'UTF-8')来处理它。这就像一个魅力。

问题出现时(让我们说)我使用我的一种母语(捷克语)特定字符,例如file2.md

Hello world
This character "š" is read like "sh" in english.  

unparsed-text()中使用相同的编码参数我收到错误:

  

XTDE1200:无法读取输入文件文件:/ C:/file2.md   (java.nio.charset.MalformedInputException):输入长度= 1

file2.md具有与file.md相同的UTF-8编码,捷克字符在此字符集中,但XSLT处理器不接受它。如果我将编码参数更改为windows-1250即。 unparsed-text('file2.md', 'windows-1250')它运作良好。

所以问题是,为什么我会收到此错误?它与输入文件扩展名为.md(.txt工作)的事实有关。周围有路吗?我真的希望能够在我提供的输入文件的xsl样式表中使用相同的编码。

感谢您的回答。

1 个答案:

答案 0 :(得分:1)

正如Martin所说,您提供的证据表明该文件是在Windows-1252中编码的,因此unparsed-text('file.md', 'utf-8')是拒绝它的权利。