如果是 asp.net 的話可以透過:
protected void Page_PreRender(object sender, EventArgs e) { Response.BinaryWrite(new byte[] { 0xEF, 0xBB, 0xBF }); }
來產生, utf-8 識別用的(BOM)字元.
如果是 php 的話, 就是:
fwrite($fp, "\xEF\xBB\xBF".$output)
如果是 asp 的話, 可以透過下列的函數來丟出 BOM 字元,
sub SendHex(valHex)
for cHex = 1 to Len(valHex) step 2
Response.BinaryWrite ChrB(CByte("&H" & Mid(valHex,cHex,2)))
next
end sub
我比較建議使用下面這個方法:
Response.CodePage = 65001
Response.BinaryWrite(chrb(239))
Response.BinaryWrite(chrb(187))
Response.BinaryWrite(chrb(191))
另一個解法是透過 Server.CreateObject("ADODB.Stream") 物件來增加(或移除) BOM 字元, 參考看看: http://www.andmm.cn/post/48.html
我是透過ADODB.Stream 來處理, 最後用 Excel 開啟 csv 檔就正常了.
沒有留言:
張貼留言