php 转码 iconv 和 mb_convert_encoding
最近在给公司做一个小工具,将 excel 表格按照一定的格式转为 txt 文本格式,要求转后的 txt 文本是 GBK 编码,但是总会有几个 excel 表格无法正常转码,最后查阅相关资料,得到解决方案
先说明下,在 php 里提供了两种方案可以实现转码
1. 使用 iconv 函数,用法
string iconv ( string in_charset, string out_charset, string str )
第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,其中 //TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符,//IGNORE 会忽略掉不能转化的字符,如果将某字符串从 UTF-8 编码转为 GBK,而这个字符串中混有不是 UTF-8 编码的字符时,就会报错,建议加上 //IGNORE
2. 使用 mb_convert_encoding,用法
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )
需要开启 mbstring 扩展库,在 php.ini 里将; extension=php_mbstring.dll 前面的 ; 去掉