我们有一个ColdFusion文件库管理系统,该系统从旧的ColdFusion 4服务器上移除并移动到基于ColdFusion 8的新系统上。
我们所有的文件和文件夹都是英文,法文和西班牙文。
在CF8中使用CFDirectory来加载和显示这些文件和文件夹会导致法语和西班牙语文件和文件夹出现两个问题,但这两个问题可能是相关的。
服务器是带有SunONE 6.1 Web服务器的Solaris 10
更新
我们现在已将问题缩小到JVM。文件系统看起来没问题,但是如果我们包含一个使用基本Java文件IO的Java类,我们会遇到与文件和目录相同的问题。
有关如何在JVM中纠正此问题的任何建议都将受到赞赏
答案 0 :(得分:1)
我没有找到与您的问题有关的任何内容,但我确实在Release notes for version 6中看到了这个说明:
您无法使用
cfinclude
包含具有双字节文件名的文件。
没有迹象表明是否已修复。我不确定,但我认为“双字节”文件名是指使用unicode,我相信你需要用它来获取文件名中的重音字符...所以它可能在某种程度上与你的问题有关
如果您不能简单地重命名文件以删除重音字符,我建议您在官方ColdFusion bug database中填写错误。
答案 1 :(得分:0)
我相信这是您的操作系统问题。
我在Ubuntu上使用CF8 dev版本和乌克兰语语言环境,可以做以下事情。
列出具有双字节字符的目录:
<cfset path = "/home/trovich/docs/журнали/" />
<cfdirectory action="list" directory="#path#" name="qGetDirectory" />
<cfinclude template="файл_з_іїґ.cfm">
文件файл_з_іїґ.cfm包含以下代码:
<cfoutput>
<cfloop query="qGetDirectory">
#qGetDirectory.name#<br>
</cfloop>
</cfoutput>
结果如下:
Акция
Ї
RING0
root#ua
PHP!nside
Phrack Magazine
phparchitect
Бійцівський Клуб
Bricolage
Друшляк
没有错过,包括完美的作品。
P.S。希望你的浏览器能正确呈现Unicode字符。
答案 2 :(得分:0)
问题可能是CF 4创建的dirs中的字符不是unicode ...事实上,如果CF4创建它们,那么我几乎可以保证它们不是因为CF之前的6不知道unicode或者从地上的洞里拿出utf-8。它经常最终使用一些奇怪的编码。另一方面,CF6 +假设几乎所有东西都是utf-8。