【问题标题】:Classic ASP - how to save data to CSV file with UTF-8经典 ASP - 如何使用 UTF-8 将数据保存到 CSV 文件
【发布时间】:2014-09-06 20:26:40
【问题描述】:

我有以下代码:

output = ...
(some comma-separated data)

Response.Clear
'Response.ChartSet = "UTF-8"
'Response.CodePage = 65001
Response.ContentType = "text/csv"
Response.AddHeader "Content-Disposition", "filename=myfile.csv;"
Response.Write(output)
Response.End

现在,拥有数据本身并生成虚拟 CSV 文件以供直接下载,一切正常,但如果我在一个或多个字段(列)中有非 ascii 数据,我不明白它在 UTF-8 中生成的 UTF-8。

如何将生成文件的内容设置为UTF-8??

此代码中的每一行注释似乎都不会影响输出...

【问题讨论】:

  • 不,不是另一个,我不回答,其他人可以。说真的,只是搜索它已经被回答了更多次,然后我才想数数!只需查看Google 中的前三个结果即可。 this answer 也应该有所帮助。我猜你的页面没有保存为UTF-8,所以 IIS 没有这样处理它。另外你有一个错字是Response.Charset = "UTF-8" 而不是Response.Chartset
  • 首先,也许我忘了在最初的问题中提到它,但是当我遇到这个问题时,我做的第一件事就是确保我将文件本身保存为 UTF-8。顺便说一句,这里的错字只是在问题中编写代码,而不是在我的代码中......我会尝试你在答案中的建议......谢谢。

标签: csv encoding utf-8 vbscript asp-classic


【解决方案1】:

如果您在 Excel 中打开 CSV 并想知道为什么 UTF-8 编码不起作用,请进一步了解我的 cmets,不要担心这是 Excel 如何识别 UTF-8 CSV 数据的副作用。

在编写输出之前尝试添加它

'BOM to dup Excel into encoding the CSV correctly instead of using ASCII!!!
Call Response.BinaryWrite(ChrB(239) & ChrB(187) & ChrB(191))

有用的链接

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    相关资源
    最近更新 更多