文件上的cfloop的charset属性在Railo中是否正常工作



Railo<cfloop file="…">标记显然是为了支持charset="…"属性,因为如果使用了非法属性,它会在错误消息中显示同样多的内容。

如果我使用cfloop从一个没有字符集属性的UTF-8编码文件中读取行,那么它可以正常工作,但我不知道为什么。我更愿意显式地声明charset="utf-8",但我不确定这是否有任何效果。

这样做的原因是,我希望明确声明charset="windows-1252"或charset="iso-8859-1"会破坏UTF-8编码文件的输入,但它仍然可以正常工作。charset="…"似乎不会导致错误,但也没有任何效果。

我想知道,没有明确字符集的UTF-8的正确解析是否会在明天或在另一台机器上继续工作。

UTF-8是cfloop的默认编码吗?如果没有,是否可以确保使用UTF-8编码?

不涉及更改默认JVM文件.encoding属性的解决方案将是首选。

我在挖掘Railo源代码后解决了这个问题。charset属性(通常)不会被忽略。我使用的UTF-8文件有一个字节顺序标记(Byte Order Mark,BOM),尽管我明确要求我的编辑器保存它而不保存。事实证明,如果存在BOM,则字符集属性将被忽略,这并非完全不合理的行为。

如果缺少BOM,则无论System.file.encoding属性的设置如何,charset="utf-8"属性都将确保使用正确的默认编码。

最新更新