3

我有一个类似的问题: ColdFusion, CFDirectory and the French which is not given a different answer。

我们已经从 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"
/>

这是 cfdump 的输出:

4

4 回答 4

1

您是否尝试过设置cfprocessingdirective标签?

<cfprocessingdirective pageencoding="utf-8">

CF 11 维基文档

此外,在 Chrome 网络检查器中,确保正确返回编码。例如:

Content-Type:text/html; charset=UTF-8
于 2014-11-21T09:06:16.583 回答
0

请参阅:为什么某些字符没有从 CFQUERY 正确注入 SQL Server?

确保您的文件以 Unicode UTF-8 编码保存。

还要确保你的 JVM 参数也能处理它。管理员 > 服务器设置 > Java 和 JVM。在参数中添加“-Dfile.encoding=UTF-8”。

在此处输入图像描述

于 2016-09-27T20:35:36.367 回答
0

如果您的环境是 Linux,则需要有一个干净的 UTF-8 配置。

请看这里

我遇到了同样的问题,我只是在文件中添加了~/.bashrc以下几行:

export LC_ALL=en_US.UTF-8 
export LANG=en_US.UTF-8 
export LANGUAGE=en_US.UTF-8

之后,别忘了重启你的 Coldfusion 服务器

sudo /opt/coldfusion11/cfusion/bin/coldfusion restart
于 2016-03-17T13:40:18.240 回答
0

我遇到了同样的问题,这解决了我
在 Linux 上的错误 /.bashrc LC_ALL="de_DE.UTF-8" 并在更改后重新启动coldfusion应用程序

于 2020-11-05T13:00:48.163 回答