如何改变ASP导出CSV的文件编码
整套程序都是utf-8编码
@ LANGUAGE = VBScript CodePage = 65001
Session.CodePage = 65001
...
导出csv
Response.Buffer = true
response.contentType = "text/csv"
response.addheader "Content-Disposition", "attachment; filename="& filename &".csv"
导出正常,且文件编码是utf-8
如果我想导出为unicode编码改如何操作,加了Response.charset = "utf-16" 也没有效果
原先UTF-8不能去掉,也就是我可以导出UTF-8格式,也可以导出Unicode格式
Write "A" & Chr(9) & "B" & Chr(9) & "C" & Chr(9) & "D" & Chr(9) & "E" & Chr(9) & "F" & vbCrLf
@ LANGUAGE = VBScript CodePage = 65001
Session.CodePage = 65001
...
导出csv
Response.Buffer = true
response.contentType = "text/csv"
response.addheader "Content-Disposition", "attachment; filename="& filename &".csv"
导出正常,且文件编码是utf-8
如果我想导出为unicode编码改如何操作,加了Response.charset = "utf-16" 也没有效果
原先UTF-8不能去掉,也就是我可以导出UTF-8格式,也可以导出Unicode格式
VBScript code
<%@ language="VBScript" codepage="65001" %>
<object progid="ADODB.Stream" id="s" runat="Server"></object>
<%
' Response.CodePage = 1200
' 本来尝试指定 Response.CodePage, 但发现不被 IIS 支持
' 故使用 ADODB.Stream 把字符串编成 byte() 后 BinaryWrite 出去
Response.CharSet = "Unicode"
Response.Buffer = True
Response.ContentType = "text/csv"
Response.AddHeader "Content-Disposition", "attachment; filename=abc.csv"
Sub Write(str)
s.Type = 2
s.Charset = "Unicode"
s.Open
s.WriteText str
s.Position = 0
s.Type = 1
Response.BinaryWrite s.Read(-1)
s.Close
End Sub
Write "A" & Chr(9) & "B" & Chr(9) & "C" & Chr(9) & "D" & Chr(9) & "E" & Chr(9) & "F" & vbCrLf
Write "文字" & Chr(9) & "汉字" & Chr(9) & "Character" & Chr(9) & "as!@##$$%^^&*" & Chr(9) & ""","""",abc""" & Chr(9) & "哈哈"
%>
评论