使用cfftp获取含特殊字符的FTP文件乱码问题求助
CFTP列出含特殊字符文件名时乱码的解决方案
问题场景
使用ColdFusion的cfftp组件从FTP服务器获取包含ä、ö、ü、ß等特殊字符的图片文件时,执行目录列表操作会出现文件名乱码问题。
问题代码
cfftp(action='open', server='server', username='user', password='pass', connection='ftpConnection', port='21', timeout=30); cfftp(action='listDir', connection='ftpConnection', directory='/', name='ftpFiles'); writeDump(ftpFiles); cfftp(action='close', connection='ftpConnection');
现象说明
服务器上原文件名为Blakläder_overview.jpg、bläöüßbild.jpg,但通过writeDump输出的ftpFiles结果中,文件名显示为Blakläder_overview.jpg、bläöüßbild.jpg。FileZilla等第三方FTP客户端可正常显示正确文件名,且cfftp组件未提供直接设置编码的属性。
解决方案
添加rrk提到的JVM参数后,问题已完美解决:
- 找到ColdFusion的JVM配置文件(通常为
jvm.config) - 在配置文件的
java.args部分添加如下参数:-Dsun.jnu.encoding=UTF-8 -Dfile.encoding=UTF-8 - 重启ColdFusion服务,再次执行
cfftp目录列表操作,特殊字符文件名即可正常显示。
内容的提问来源于stack exchange,提问作者rscRoman
相关产品推荐
相关产品推荐

