下載CSV, MS EXCEL開啟亂碼解決方案[轉載]

來源:互聯網
上載者:User
下載CSV, MS EXCEL開啟亂碼解決方案 

 

MS的Office Excel開啟CSV檔案預設是以ANSI, UNICODE格式開啟的(對舊版本是這樣, 2007好像已經能根據BOM來識別UTF-8了, 但2003還不行)

下面來說如何針對不同的office版本EXCEL都來相容CSV
思路就是:將你的編碼轉成UTF-16LE後, 再加一個UNICODE的BOM頭”/xFF/xFE”, 最後下載, 這樣下載下來的CSV就是UNICODE格式的了
PHP程式例子:

$str4File = iconv(‘UTF-8′, ‘UTF-16LE’, $content);
//轉碼成utf-16的小尾序(http://zh.wikipedia.org/wiki/UTF-16),
這是微軟和linux系統使用的UNICODE儲存文字格式, 蘋果系統使用的是大尾序儲存文字格式, 那樣就需要用UTF-16BE,
而bom頭使用FE FF
$str4Download = gzencode(“/xFF/xFE”.$str4File);//加入bom頭, 壓縮內容
header(‘Content-type: text/csv; charset=UTF-16LE’);
header( “Content-Length: “.strlen($str4Download) );
header( “Content-Disposition: attachment; filename=/”$filename/”" );
echo $str4Download;

有一點要注意:
就是Unicode編碼的.CSV檔案可能不支援”,”分割,需要”/t”空格來分割

這是另外一篇介紹 解決CSV亂碼的文章, 可參考:http://wangblog.org/2007/12/utf-8unicode.html

介紹: UTF-8, UTF-16與UNICODE的關係
所謂“utf-8”“utf-16”只是UCS Transformation Format,只是UNICODE的一種表現形式, UCS 即是 Unicode Character Set.
更詳細的資料, 參考wiki

http://blog.fengruzhuo.com/?p=295

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.