【发布时间】:2015-01-19 08:01:51
【问题描述】:
我有一个类似的问题: ColdFusion, CFDirectory and the French 没有得到满意的答复。
我们已经从 Coldfusion 9 升级到了 Coldfusion 11。到目前为止,除了以下问题没有大问题:
当使用 CFdirectory 显示名称中包含非 ASCII 字符的文件名(例如:重音符号、变音符号)时,我们会看到带有替换字符的文件名 - 而不是正确的 UTF 等效字符。例如,名为 L’État, c’est moi.pdf 的文件显示为 L�����tat, c���est moi.pdf。
我们确信这是一个 Coldfusion 问题,因为除了 Coldfusion 版本没有任何变化。在列出相同的重音文件名时,使用 Coldfusion 9 CFdirectory 可以正常工作。我们的操作系统是 Redhat 7.0,文件名也可以使用 ls 命令正确显示在终端上。我还创建了一个快速的 PHP 脚本,以查看 PHP 是否可以使用“readdir”命令正确读取目录,并且那里也没有问题,文件名是否正确呈现。
所以我相信这一定是 Coldfusion 11 的问题。我在 Coldfusion 管理员服务器界面的 JVM 设置中添加了 -Dfile.encoding=UTF-8 -Dencoding=UTF-8 参数,但没有任何区别。
任何有关如何纠正此问题的建议将不胜感激。
使用的代码示例如下:
<cfdirectory
action="list"
directory="#ExpandPath( './' )#/pdfs"
listinfo="name"
name="qFile"
/>
<cfdump
var="#qFile#"
label="All Files"
/>
【问题讨论】:
-
我非常想知道您是如何“使用 CFdirectory 显示文件”的。你有没有机会向我们提供一些代码来证明你在做什么? (阅读:blog.adamcameron.me/2013/09/…)
-
对不起亚当,因为英语不是我的第一语言,也许我没有正确表达自己。我的意思是我们使用 CFdirectory 列出所选目录的文件名。我在我的问题中添加了相关代码。我希望这次我清楚了:-)
-
是的,干杯。我刚才很忙,但如果没有其他人先回复你,我会看看@this@lunchtime(大约 3 小时时间)。
-
您在更改 arg 后是否重新启动了 CF?
-
等待 - 您的问题可能与 CFDUMP 有关。使用正确的显示编码设置您的页面,然后使用 cfoutput 输出文件。那些问号只是表示超出范围的 ascii 字符,对吗?
标签: encoding utf-8 coldfusion jvm cfdirectory