php怎样把utf8转换为gbk
<?php@header("Content-type:text/html;charset=UTF-8");echo $str= '你好,这里是卖咖啡!';echo '<br />';echo iconv("UTF-8","gbk//TRANSLIT",$str);; //将字符串的编码从UTF-8转到GB2312
echo '<br />';echo iconv_substr($str, 1, 1, 'UTF-8'); //按字符个数截取而非字节print_r(iconv_get_encoding()); //得到当前页面编码信息echo iconv_strlen($str, 'UTF-8'); //得到设定编码的字符串长度?>
gbk转换为utf8的方法:
<?php
@header("Content-type:text/html;charset=GB2312");echo $str= '你好,这里是卖咖啡!';echo '<br />';echo iconv('GB2312', 'UTF-8', $str); //将字符串的编码从GB2312转到UTF-8echo '<br />';echo iconv_substr($str, 1, 1, 'GB2312'); //按字符个数截取而非字节print_r(iconv_get_encoding()); //得到当前页面编码信息echo iconv_strlen($str, 'GB2312'); //得到设定编码的字符串长度?>
iconv函数可以转,但是由于字符集的问题,iconv 函数在utf8转 GBK 的时候,会存在一些问题,比如一些特殊字符类似中文“-”会导致无法转换,要加 //IGNORE 来保证执行(文档: http://php.net/manual/en/function.iconv.php)。
另外你可以哟功能 MB 族的方法来进行转换,文档:http://php.net/manual/en/function.mb-convert-encoding.php,有可能你的 PHP 需要单独安装 Multibyte String 支持,有可能已经装了,文档看这里:http://php.net/manual/en/book.mbstring.php
iconv("UTF-8", "GBK//IGNORE", $text);
mb_convert_encoding($str, "GBK", "UTF-8");