PHP()函数字符编码转换的问题讲解更新时间:2019年03月22日
2021-07-20
PHP()函数字符编码转换问题说明
更新时间:2019年3月22日10:50:06 作者:
今天小编就给大家分享一个关于PHP()函数字符编码转换的讲解。主编觉得内容还不错。现在我把它分享给你。有很好的参考价值。有需要的朋友关注小编。一起来看看
php中的函数库可以完成各种字符集之间的转换,是php编程中必不可少的基础函数库;但有时会无缘无故地对某些数据进行较少的转码。例如,当转换字符“—”到达时会出现错误。
我们慢慢来看看这个函数的用法。
最简单的应用,替换成utf-8:
$text=iconv("GB2312","UTF-8",$text);
在使用$text=("UTF-8","",$text)的过程中,如果遇到一些特殊字符,如:"—", "."在英文名称等,转换它打破了。这些字符后的文本无法再转换。
对于这个问题,可以使用如下代码来实现:
$text=iconv("UTF-8","GBK",$text);
你没看错,就是这么简单,别用了编码转换 php,用GBK写就行了。
还有一个方法,第二个参数,加//,忽略错误,如下:
iconv("UTF-8","GB2312//IGNORE",$data);
两种方法没有具体的比较,感觉第一种方法(GBK代替)更好。
在php手册()中说明:
(PHP 4 >= 4.0.5, PHP 5)
-到
(,, str )
str from to 上的一个集合。或 。
如果你 // to 是。这是当 a 不能在的时候,它可以是一个或。如果你 //, 那在 are., str 是从 .
使用该函数进行字符串编码转换时需要注意,如果将utf-8转换为时间,字符串可能会被截断。这时候可以使用以下方法来解决:
$str=iconv('utf-8',"gb2312//TRANSLIT",file_get_contents($filepath));
第二个参数中增加了红字部分,表示:如果目标代码中没有与源代码匹配的字符,则会选择一个相似的字符进行转换。这里也可以使用://这个参数的意思是忽略不能转换的字符
表示在转换过程中忽略错误。如果没有参数,则无法保存该字符后的所有字符串。
不是php的默认功能,而是默认安装的模块。需要安装后才能使用。
如果是+php,可以修改php.ini文件,去掉“;”在=.dll之前,把你原来的php安装文件下的.dll复制到你的/(如果你的dll指向这个目录)。环境中,使用静态安装方式,多加一项--with-,到时候就可以看到该项了。 (.3+.06+php4.3.2).
功能介绍
该函数用于转换代码。一直没搞懂程序编码的概念,现在好像有点开悟了。不过英文一般没有编码问题,只有中文数据才会有这个问题。例如,当您使用 Zend 或编写程序时,您使用 gbk 编码。如果需要将数据输入数据库,并且数据库编码为utf8,则数据必须进行编码,否则输入数据库时会出现乱码。
将 GBK 转换为 UTF-8:
再到 Big5:
但是,要使用上述功能,需要先安装,但需要先扩展库。
(str, [,]) 需要先展开库。在 php.ini 中,删除; =.dll之前;可以指定多种输入编码,会根据内容自动识别,但执行效率太差;
(,, str) 注意:除了指定要转换为第二个参数的编码外,还可以添加两个后缀://和//编码转换 php,其中//会自动改变不能直接转换的字符变成一个或多个相似字符, // 会忽略不能转换的字符,默认效果是从第一个非法字符开始截断。
一般情况下使用,只有在无法确定原码或转换后无法正常显示时才使用该函数。
$content = iconv("GBK", "UTF-8″, $content); $content = mb_convert_encoding($content, "UTF-8″, "
总结
以上是本文的全部内容。希望本文的内容对大家的学习或工作有一定的参考价值。感谢您对 的支持。如果您想了解更多,请查看以下相关链接