使用 CF9,我想将输出写入 csv 文件以供用户下载。
<cfinvoke component="RAMP.cfcData.reportMonthlyTotals" method="report" xport="1" returnvariable="rpt" />
<cfset columnList = "Project Number,Project Name,Organization,Division,Group" />
<cffile action="write" file="#xportPath#" charset="utf-8" output="#columnList#" />
<cfset csvRow = "" />
<cfloop array="#rpt.data#" index="row">
<cfset csvRow = arrayToList(row,",") />
<cffile action="append" file="#xportPath#" charset="utf-8" output="#csvRow#" />
</cfloop>
方法报告的输出是一个数组数组。该函数的返回格式为“JSON”。同样的函数返回在 JQuery DataTables 网格中使用的数据。
rtn.data = [
["itemOne", "itemTwo", "itemThree"],
["itemOne", "itemTwo", "itemThree"],
]
我遇到的问题是某些数据具有特殊字符。这是从同一函数输出到测试页上的文本区域。
CC2014118463,"Employee Townhall with CSO Q3 - São Paulo","CMO Communications & Public Relations","CALA Comms"
csv 文件具有与以下相同的行:
CC2014118463,"Employee Townhall with CSO Q3 - São Paulo","CMO Communications & Public Relations","CALA Comms"
是什么导致 San 中的特殊字符被转换为 ã ?我在编写和附加文件时尝试了不同的字符集设置。如果是 json 编码问题,我也尝试更改 cfc 的返回格式。但到目前为止,没有运气。
提前感谢您的帮助。加里