提供Discuz ,ECShop ,PHPCMS ,帝国CMS ,CSS教程 ,PHP教程 ,DedeCMS ,WordPress ,HTML教程等cms问题查询.
当前位置: PHP问题 > php输出csv乱码怎样处理【php问题】,php,csv,乱码

在做项目时遇到运用外语的情况下,我们就会运用UTF-8编码。然则,在用PHP导出CSV文件时,假如写入的数据是运用UTF-8编码的日语、韩语之类的外文,就会涌现乱码。

要处理PHP生成CSV文件的乱码题目,只需要在文件的最先输出BOM头,通知windows CSV文件的编码体式格局,从而让Excel翻开CSV时采纳准确的编码。

相干引荐:《php教程》

什么是BOM

在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该涌现在现实传输中。UCS范例发起我们在传输字撙节前,先传输字符”ZERO WIDTH NO-BREAK SPACE”。如许假如接收者收到FEFF,就表明这个字撙节是Big-Endian的;假如收到FFFE,就表明这个字撙节是Little-Endian的。

因而字符”ZERO WIDTH NO-BREAK SPACE”又被称作BOM。UTF-8不需要BOM来表明字节递次,但可以用BOM来表明编码体式格局。字符”ZERO WIDTH NO-BREAK SPACE”的UTF-8编码是EF BB BF。所以假如接收者收到以EF BB BF开首的字撙节,就晓得这是UTF-8编码了。Windows就是运用BOM来标记文本文件的编码体式格局的。

在所有内容输出之前

print(chr(0xEF).chr(0xBB).chr(0xBF));

几个UTF编码的BOM头

define ('UTF32_BIG_ENDIAN_BOM'   ,   chr(0x00) . chr(0x00) . chr(0xFE) . chr(0xFF));
define ('UTF32_LITTLE_ENDIAN_BOM',   chr(0xFF) . chr(0xFE) . chr(0x00) . chr(0x00));
define ('UTF16_BIG_ENDIAN_BOM' ,   chr(0xFE) . chr(0xFF));
define ('UTF16_LITTLE_ENDIAN_BOM',   chr(0xFF) . chr(0xFE));
define ('UTF8_BOM'   ,   chr(0xEF) . chr(0xBB) . chr(0xBF));

完全的代码:

header('Expires: 0');
header('Cache-control: private');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Description: File Transfer');
header('Content-Encoding: UTF-8');
header('Content-type: text/csv; charset=UTF-8');
header('Content-Disposition: attachment;filename=Customers_Export.csv');
echo "\xEF\xBB\xBF"; // UTF-8 BOM
// print(chr(0xEF).chr(0xBB).chr(0xBF));

以上就是php输出csv乱码怎样处理的细致内容,更多请关注ki4网别的相干文章!

「梦想一旦被付诸行动,就会变得神圣,如果觉得我的文章对您有用,请帮助本站成长」

分享到:
赞(0) 打赏

支付宝扫一扫打赏

微信扫一扫打赏

标签:

上一篇:

下一篇:

相关推荐

0 条评论关于"php输出csv乱码怎样处理【php问题】,php,csv,乱码"

最新评论

    暂无留言哦~~

博客简介

看古风美女插画Cos小姐姐,素材合集图集打包下载:炫龙网,好看二次元插画应有尽有,唯美小姐姐等你来。

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

服务热线:
 

 QQ在线交流

 旺旺在线