PHP字符编码转换技巧:iconv与mb_convert_encoding函数深度解析

创始人
2024-12-15 06:48:50
0 次浏览
0 评论

如何将phpinfo字符串类型转换

PHP中通过icons和mb_convert_encoding函数进行字符编码转换的详细解释如下:

icons函数库可以完成不同字符集之间的转换,是PHP编程中不可缺少的基础函数库.

用法如下:

$string='亲爱的朋友们,欢迎来到博客,希望对您有所帮助!";iconv("utf8","gbk",$string)//将字符串编码由utf8转换为gbk;

展开如下:

echo[数学处理error]str=′好的,欢迎来到记录程序员开发历程的博客!′;echo′
′;echoiconv(′GB2312′,′UTF−8′,str);从GB2312编码为UTF-8echo'
';echoiconv_substr([数学处理error]str,1,1,′UTF−8′);//按字符数而不是字节进行截取dantri(iconvgetencoding());//获取当前页面编码信息echoiconvstrlen(str,'UTF-8');//获取设置编码的字符串长度//也用到了[数学处理错误]content=iconv("UTF−8","gbk//TRANSLIT",content);Comments:

1.iconv不是PHP的默认函数,也是默认安装的模块,使用前需要安装。

如果是windows2000+php,可以修改php.ini文件,在extension=php_iconv.dll前添加“;”。
另外,你需要将Ystem32下winnt/s上原来的php安装文件下的iconv.dll复制过来(如果你的dll指向这个目录,我本地就没有做这一步)

Linux环境下,使用静态安装并添加一个附加项--with-当配置的iconv足够时,phpinfo可以看到iconv项。
(Linux7.3+Apache4.06+php4.3.2);

这样就完成了php中iconv的引入

2.使用iconv函数将捕获的utf-8编码的页面转换为gb2312,我发现如果使用iconv函数对捕获的数据进行转码,没有任何数据会因此而减少。
这是:

stringiconv(stringin_charset,stringout_charset,stringstr)

注意:第二个参数除了指定要转换的编码外,还可以加两个后缀:/。
/翻译和//忽略。
//translit会自动将无法直接转换的字符转换为一个或多个预测字符。
//ignore将忽略无法转换的字符。
默认效果已从第一个无效字符开始被截断。
如果截断的话肯定会少;

可以用iconv("UTF-8","GB2312//IGNORE",$string)这样忽略那些字符可以修改不能的改变了;

补充:

PHP中mb_convert_encoding和icons函数介绍

mb_convert_encoding函数用于转换编码,与icons函数类似。

英文一般不会有编码问题,只有中文数据才会出现这个问题。
例如,使用ZendStudio或Editplus编写程序时,使用gbk编码。
如果需要将数据录入数据库,而数据库的编码是utf8,则必须对数据进行编码转换,否则会失真。
进入数据库时​​。

将GBK转UTF-8

<?phpheader('content-Type:text/html;charset=Utf-8");//字符编码设置为utp-8echomb_convert_encoding("你我的朋友是","UTF-8","GBK");?>

GB2312ToBig5

<?phpheader('content-Type:text/html;charset=h35');echomb_convert_encoding('Friends','h35')?>

但是,要使用上述函数,首先mbstring扩展库。
原理还是一样的,修改php.ini另一个函数icons也是用来转换字符串编码的,其功能与上面的函数类似:

下面是一些详细的例子:

iconv-将字符串转换为请求的字符编码(PHP4>=4.0.5,PHP)。
5)mb_convert_encoding—转换字符编码(PHP4>=4.0.6,PHP5)

用法:

Stringmb_convert_encoding(Stringstr,stringto_encoding[,mixfrom_encoding]

首先必须在php.ini中启用mbstring扩展库,位于extension=php_mbstring.dll前面添加;

去掉mb_convert_encoding可以指定多个内容,会自动识别,但是执行效率比iconv差很多;为什么还需要解释()函数呢?答案如下:

我发现转换iconv字符“-”在访问gb2312时会产生错误。
如果没有ignore参数,则无法保存该字符后面的所有字符串。
这样,这个“-”也无法成功转换输出。

而且,mb_convert_encoding没有这个bug。

一般情况下,iconv只是在使用的时候。
无法确定原始编码,或者只有转换后iconv无法正常显示时才使用mb_convert_encoding函数。

PHP编写函数change($str)实现字符串转换功能,例如“str_replace”转换成"S?

如果从小写转换为大写,“str_replace”是否转换为“STR_REPLACE”?

php内置函数strtoupper(),只需strtoupper("str_replace")即可。
如果你想写一个change函数,那么就是:

functionchange("$str){

reversoupper($str);

}

2.{

返回substr(str($str),0,1);

}

PHP中字符串“open_floor”转换成“OpenFloor”、”you_and_she”转换成”YouAn

程序代码:

<?php$s='you_and_she';$t=implode('',array_map('ucfirst',explode('_',$s)));echo$t;?>

原理:根据_分割成单词,每个单词首字母大写,然后合并。

热门文章
1
Python中的format()方法:字... formatformat在python中的含义2222.22E+00Format...

2
Python编程入门:全面解析Pytho... python的基本语法基本的Python语法如下:1.变量的定义。在编程语言中,...

3
Python爱心绘制教程:使用turtl... python的爱心代码教程(python画爱心代码)绘制心形的Python代码我...

4
Python字符串大小写转换方法全解析 python中字母的大小写转换怎么实现?在Python中,大小写转换由内置函数处...

5
Python字典:轻松获取最小值键与计算... python在一个字典里,返回值最小元素对应的键,救解在Python字典中,如果...

6
Python字符串去重空格:strip(... Python去除字符串中空格(删除指定字符)的3种方法在Python编程中,处理...

7
Python数组元素数量计算技巧分享 Python输出数组有多少个元素?简介:在本文中,首席CTO笔记将向您介绍Pyt...

8
简述python中pass的作用 pass语句的作用在许多编程语言中,包括Python;PASS语句用于在代码块中...

9
Python def 关键字详解:函数定... def是什么意思编程?戴夫是什么意思?def是Python中的函数定义关键字,用...

10
python不区分大小写的方法 Python字符串不区分大小写在Python中,字符串操作默认区分大小写。但有时...