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编程入门:全面解析Pytho... python的基本语法基本的Python语法如下:1.变量的定义。在编程语言中,...

2
Python字典操作全解析:添加、修改、... &#65279;Pythondict字典基本操作(包括添加、修改、删除键...

3
Python错误处理与异常处理:构建稳定... 2.5错误处理与异常在编程领域,错误处理和异常处理是保证程序稳定性和健壮性的关键...

4
Python数据转换攻略:字符串、列表、... Python字典、字符串及列表的相互转换Python中数据转换的艺术:从字典和字...

5
Python列表相加与求和技巧解析 重温python基础:列表相加的方法(两个list[]加法)今天,我们来看看Py...

6
Python运行快捷键大揭秘:高效操作,... python运行按哪个键运行Python时的快捷键包括Ctrl+Shift+F1...

7
Python字符与数字互转攻略:轻松掌握... python&#160;字符与数字如何转换Python是一种功能强大且结...

8
Python字符串转列表:两种常用方法解... python怎么将字符串转换为列表Python中将字符串转换为列表的方法有多种,...

9
Python字符串转列表:两种常用方法解... python怎么将字符串转换为列表在Python中将字符串转换为列表的方法有很多...

10
Python列表转字符串全攻略:掌握四种... Python列表到字符串–如何在Python中转换列表在Python中,将列表转...