iconv函数和mb_convert_encoding函数转码的有关问题
程序员文章站
2022-06-04 17:08:42
...
iconv函数和mb_convert_encoding函数转码的问题
这两个函数各有特点,
1、iconv速度快,自然优先选择,但是他有个缺点,如果遇到自己不能转换的字符,就从那里截断。这就导致转码中内容被无故截断。
2、mb_convert_encoding函数效率比较低,但是他遇到无法转换的内容不会截断,这很大程度保留了内容的完整性。但是我发现比如内容有空格,转换出来的内容就有?符号,还是不够完美。
如何结合这两个函数对字符进行转码?
我的思路是这样的:
优先肯定使用iconv函数,因为效率高,而且是内置函数。discuz的转码函数也是优先使用此函数,但是他转码不完整的情况下,就要安排mb_convert_encoding去收拾残局了,问题来了,如何判断他转码不完整?
------解决方案--------------------
虽然 mb_convert_encoding函数 需要加载 php_mbstring 扩展
但加载了就不能说不是内置函数了
对于不可识别的字符,iconv 提供了两个开关供你选用,并不是一味的截断
//TRANSLIT 用相近的字符替代
//IGNORE 丢弃并继续
这两个函数各有特点,
1、iconv速度快,自然优先选择,但是他有个缺点,如果遇到自己不能转换的字符,就从那里截断。这就导致转码中内容被无故截断。
2、mb_convert_encoding函数效率比较低,但是他遇到无法转换的内容不会截断,这很大程度保留了内容的完整性。但是我发现比如内容有空格,转换出来的内容就有?符号,还是不够完美。
如何结合这两个函数对字符进行转码?
我的思路是这样的:
优先肯定使用iconv函数,因为效率高,而且是内置函数。discuz的转码函数也是优先使用此函数,但是他转码不完整的情况下,就要安排mb_convert_encoding去收拾残局了,问题来了,如何判断他转码不完整?
------解决方案--------------------
虽然 mb_convert_encoding函数 需要加载 php_mbstring 扩展
但加载了就不能说不是内置函数了
对于不可识别的字符,iconv 提供了两个开关供你选用,并不是一味的截断
//TRANSLIT 用相近的字符替代
//IGNORE 丢弃并继续
相关文章
相关视频
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
推荐阅读
-
变量和函数声明当中的问题
-
js函数,局部变量,全局变量,和重载的问题
-
PHP iconv()函数字符编码转换的问题讲解
-
PHP iconv()函数字符编码转换的问题讲解
-
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
-
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
-
PHP中iconv函数转码时截断字符问题的解决方法
-
js中apply和Math.max()函数的问题及区别介绍
-
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
-
PHP中mb_convert_encoding与iconv函数的深入解析
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论