深圳全飞鸿

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 543|回复: 1
打印 上一主题 下一主题

mb_convert_encoding()和iconv的区别

[复制链接]

800

主题

1379

帖子

7705

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7705
跳转到指定楼层
楼主
发表于 2020-6-6 11:08:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式



需要先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 函数.
回复

使用道具 举报

800

主题

1379

帖子

7705

积分

版主

Rank: 7Rank: 7Rank: 7

积分
7705
沙发
 楼主| 发表于 2020-6-6 11:11:55 | 只看该作者
  1. 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");   
        }
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|nagomes  

GMT+8, 2025-5-5 06:24 , Processed in 0.023415 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表