【问题标题】:Save CSV WITH BOM使用 BOM 保存 CSV
【发布时间】:2013-03-19 01:56:18
【问题描述】:

我有创建 csv 文件的 asp 页面。问题是这个 csv 文件被创建为 UTF-8 WITHOUT BOM,当我打开它时,一些标志不正确可见。我应该更改什么以将其保存为 UTF-8 WITH BOM?如果我在记事本++中手动将其转换为带有BOM的UTF-8,它就可以工作。

谢谢。

    Response.Clear
    Response.ContentType = "application/vnd.ms-excel; charset=UTF-8;"
    Response.AddHeader "Content-Disposition", "attachment; filename=goodsTransfer.csv"
    Response.Charset = "UTF-8"
    Response.Write "all my data"
    Response.end

【问题讨论】:

    标签: excel csv asp-classic character-encoding


    【解决方案1】:

    试试:

    Response.Write(ChrW(65279) & "all my data")
    

    【讨论】:

    • 它有效。谢谢你。但这意味着什么。据我了解,BOM 表示这是 UTF-16 文件:(FEFF 为十进制 65279)来自维基百科:“UTF-16,BOM (U+FEFF) 可以作为文件的第一个字符或字符流来指示文件或流的所有 16 位代码单元的字节顺序(字节顺序)。”但是我可以用notepad++打开它,它只支持UTF-8。你能解释一下吗?谢谢。
    • stackoverflow.com/a/17879474/416542 中所述:字符 \ufeff 用于所有 UTF 编码。事实上,正如维基百科中所述,这个字符实际上在 UTF-8 中编码为 0xEFBBBF。
    【解决方案2】:

    UTF-8 的正确 BOM 是:

    Response.Write(ChrW(&HeF) & ChrW(&Hbb) & ChrW(&HbF) & "all my data")
    

    【讨论】:

      猜你喜欢
      • 2011-09-21
      • 1970-01-01
      • 1970-01-01
      • 2020-12-10
      • 1970-01-01
      • 2017-04-27
      • 1970-01-01
      • 1970-01-01
      • 2020-01-15
      相关资源
      最近更新 更多