精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

解決utf8編碼中php導出CSV亂碼的方法

小編給大家分享一下解決utf8編碼中php導出CSV亂碼的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

網站建設哪家好,找創新互聯公司!專注于網頁設計、網站建設、微信開發、小程序設計、集團企業網站建設等服務項目。為回饋新老客戶創新互聯還提供了順昌免費建站歡迎大家使用!

解決亂碼的方法:1、使用iconv函數將utf8編碼轉碼為GBK,語法“$str = iconv('utf-8', 'GBK//IGNORE', $str));”;2、在輸出內容前先輸出BOM頭,這樣Excel就可自動識別到是UTF-8了。

解決utf8編碼中php導出CSV亂碼的方法

其實需求是把數據導出到Excel,很當然的想到大名鼎鼎的PHPExcel這個庫。這個庫是很強大,就是比較占用內存,超過10萬的數據,在web請求中基本是很難完成了。因此,使用原生PHP導出輕量的csv還是有需求的。

一般情況下,導出UTF-8編碼的常規內容到csv當中,用Excel打開都是亂碼,更別說一些非主流字符,或者是emoji表情。亂碼,是因為在windows系統下,默認的Excel是使用GBK編碼解析的。現如今,編碼哪還有不是使用UTF-8的,真有,那也是大公司知名產品會為了省那點流量出有GBK等其他編碼的版本,一般情況下都是使用UTF-8的。

要解決亂碼問題,PHP中做法一般是使用iconv函數進行轉碼為GBK,這樣,默認的Excel打開就不會有問題了。但對于emoji表情等主流字符,GBK并不能顯示,轉碼失敗直接為空了。可以添加//IGNORE標記進行忽略,這樣只是忽略了它們,其他正常字符是能夠保留的。

$str = iconv('utf-8', 'GBK//IGNORE', $str));

這可以說是一種折中方案。能不能不轉碼直接輸出UTF-8?難道Excel還不能自動識別UTF-8進而使用UTF-8來解碼顯示么?其實是可以的,只是它需要一個BOM頭(在非windows的世界里是沒有這個東西的),有這個BOM頭它就能識別到是UTF-8,否則識別不了用默認的GBK來處理,自然就是亂碼了。如何正確輸出所謂的BOM頭,看代碼:

$fp = fopen('./test_csv.csv', 'a');
fwrite($fp,chr(0xEF).chr(0xBB).chr(0xBF));//輸出BOM頭
fputcsv($fp, ['標題']);
fputcsv($fp, ['解決亂碼']);
fclose($fp);

可以解決所謂亂碼以及正常顯示emoji表情等非主流字符。

看完了這篇文章,相信你對解決utf8編碼中php導出CSV亂碼的方法有了一定的了解,想了解更多相關知識,歡迎關注創新互聯行業資訊頻道,感謝各位的閱讀!


分享名稱:解決utf8編碼中php導出CSV亂碼的方法
標題來源:http://m.jcarcd.cn/article/pphsod.html
主站蜘蛛池模板: 欧美一级A免费区 | 日韩网友自拍区 | 欧美亚洲精品suv | 三年片免费观看大全 | 囯产又大又爽 | 爱福利导航 | 欧洲成人r | 国产性爱综合 | 中文字幕制人妖 | 国产91区| 欧美日韩国产偷拍 | 精品国产98页 | 精品国产亚洲 | 日韩欧美国 | 日本成人一区二区 | 午夜国产精品理论 | 成人国产精品高清 | 欧美中文幕 | 日韩欧美精品 | 成人激情视频在线 | 日韩午夜禽兽视频 | 日韩亚洲精品影视 | 91国产爽爽黄在 | 国产在线ts | 日韩一区二区免费看 | 日本韩国欧 | 午夜国产福利 | 91福利在线看| 加勒比色 | 日本电影中文字 | 日本熟女多毛性爱 | 国产阿v在线观 | 99夫妻绿帽在线 | 欧美在线视频第一页 | 家庭乱码伦区中 | 国产精品永久在线 | 精品国产2021 | 国产三級 | 欧美尤物在线一 | 国产一区在线视 | 精品日本亚洲18 |