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 file.encoding属性的解决方案。
答案 0 :(得分:1)
我在挖掘了Railo源后解决了这个问题。 charset属性不会(通常)被忽略。我使用的UTF-8文件有一个字节顺序标记(BOM),即使我明确要求我的编辑器保存它没有一个。事实证明,如果存在BOM,则会忽略charset属性 ,这不是完全不合理的行为。
如果缺少BOM,则charset =“utf-8”属性将确保使用正确的默认编码,而不管System.file.encoding属性的设置如何。