更新:原始CSV是在Excel中创建的;当我将数据复制到Google电子表格并从云端硬盘下载CSV时,它可以正常工作。我猜猜有一个编码问题与Excel CSV?有没有办法解决这个问题,或者我们是否需要告诉客户使用Google文档?
我有一个带有非罗马字符的CSV(我的例子是法语,但我们支持完全非罗马语言,如阿拉伯语和泰语)我正在通过ColdFusion的cffile阅读。问题是读取的输出是将所有重音字符转换成奇怪的?符号( )。最初在cffile上没有指定charset,所以我尝试添加utf-8(无变化)和utf-16(一切都转换为中文排序?)。
任何人都知道如何从CSV中获取这些数据而不会丢失/弄乱角色?
CSV示例:
Smith,Joan,joan.smith @ test.com,HôpitalJésus
原始cffile:
<cffile action="read" file="#expandedFilePath#" variable="strCSV">
cffile w / charset补充道:
<cffile action="read" file="#expandedFilePath#" variable="strCSV" charset="utf-8">
strCSV的cfdump(没有charset / utf-8 charset):
Smith,Joan,joan.smith @ test.com,H pitalJ sus
strCSV的cfdump(utf-16 charset):
卭楴栬䩯虑ⱪ潡渮獭楴桀瑥獴潭ⱈ楴慬⁊畳ഊ
答案 0 :(得分:0)
与大多数Windows程序一样,Excel使用CP-1252编码(不是UTF-8;这很重要:大多数编码猜测器都不能识别ISO-8859-1)。你有没有尝试过:
<cffile action="read" file="#expandedFilePath#"
variable="strCSV"
charset="windows-1252" />
如果这样可行,您是否可以依赖输入始终是默认的Windows文件?