深圳全飞鸿
标题:
mb_convert_encoding()和iconv的区别
[打印本页]
作者:
zhgc
时间:
2020-6-6 11:08
标题:
mb_convert_encoding()和iconv的区别
需要先enable mbstring 扩展库
在 php.ini里将; extension=php_mbstring.dll 前面的 ; 去掉
mb_convert_encoding 可以指定多种输入编码,它会根据内容自动识别,但是执行效率比iconv差太多;
一般情况下用 iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用
1、mb_convert_encoding() 该函数会根据内容自动识别编码,但是执行效率比iconv差;
2、然后有一种说法就是iconv()在一些字符转换下会不正常,网上有种说法就是:发现iconv在转换字符”—”到gb2312时会出错,如果没有 ignore参数,所有该字符后面的字符串都无法被保存。不管怎么样,这个”—”都无法转换成功,无法输出。 另外 mb_convert_encoding没有这个bug.
3、mb_convert_encoding()是PHP扩展函数,要开启扩展库才能用;而iconv是PHP内置函数,不需另外开启扩展库就可以使用。
4、一般情况下用 iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用mb_convert_encoding 函数.
作者:
zhgc
时间:
2020-6-6 11:11
string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] )
复制代码
将 string 类型 str 的字符编码从可选的 from_encoding 转换到 to_encoding。
参数
str要编码的 string。
to_encodingstr 要转换成的编码类型。
from_encoding在转换前通过字符代码名称来指定。它可以是一个 array 也可以是逗号分隔的枚举列表。 如果没有提供 from_encoding,则会使用内部(internal)编码。
<?php
/* 转换内部编码为 SJIS */
$str = mb_convert_encoding($str, "SJIS");
/* 将 EUC-JP 转换成 UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");
/* 从 JIS, eucjp-win, sjis-win 中自动检测编码,并转换 str 到 UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");
/* "auto" 扩展成 "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>
$con = mysql_connect($db_param["db_host"], $db_param["db_username"], $db_param["db_password"]);
if (!$con){
$Msg='接MES数据库失败!'.mb_convert_encoding(mysql_error(),"UTF-8","GBK");
}
欢迎光临 深圳全飞鸿 (http://www.nagomes.com/disc/)
Powered by Discuz! X3.2