首页后端开发PHPPHP使用iconv函数报错什么原因

PHP使用iconv函数报错什么原因

时间2024-03-24 23:20:03发布访客分类PHP浏览1623
导读:这篇文章给大家分享的是“PHP使用iconv函数报错什么原因”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“PHP使用iconv函数报错什么原因”吧。 方法:1、在函数的...
这篇文章给大家分享的是“PHP使用iconv函数报错什么原因”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“PHP使用iconv函数报错什么原因”吧。


方法:1、在函数的第二个参数后添加“//IGNORE”,语法为“iconv("UTF-8","GB2312//IGNORE",..)”;2、将gb2312置换成“utf-8”,语法为“iconv("GB2312","UTF-8",..)”。

本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑

php中iconv函数报错怎么办

iconv()介绍

iconv函数可以将一种已知的字符集文件转换成另一种已知的字符集文件。例如:从GB2312转换为UTF-8。

iconv函数在php5中内置,GB字符集默认打开。

iconv()错误

iconv在转换字符”—”到gb2312时会出错,解决方法是在需要转成的编码后加 “//IGNORE”,也就是iconv函数第二个参数后。如下:

      iconv("UTF-8", "GB2312//IGNORE", $data)

ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。

在php中iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库;但有时候iconv对于部分数据转码会无缘无故的少一些。比如在转换字符"—或者繁体"到gb2312时会出错。

下面一起慢慢看一下这个函数的用法。

最简单的应用,把gb2312置换成utf-8:

`$text``=iconv(``"GB2312"``,``"UTF-8"``,``$text``);
    `

在用$text=iconv("UTF-8","GB2312",$text)过程中,如果遇到一些特别字符时,如:"—或者繁体",英文名中的"."等等字符,转换就断掉了。这些字符后的文字都没法继续转换了。

针对这的问题,可以用如下代码实现:

`$text``=iconv(``"UTF-8"``,``"GBK"``,``$text``);
    `

你没有看错,就这么简单,不使用gb2312,而写成GBK,就可以了。

还有一种方法,第二个参数,加上//IGNORE,忽略错误,如下:

`iconv(``"UTF-8"``,``"GB2312//IGNORE"``,``$data``);
    `

没有具体比较这两种方法,感觉第一种(GBK代替gb2312)方法更好。

示例如下:

  ?php
    echo $str= ‘你好,这里是卖咖啡!’;
    
    echo 'br />
    ';
    
    echo iconv('GB2312', 'UTF-8', $str);
     //将字符串的编码从GB2312转到UTF-8
    echo 'br />
    ';
    
    echo iconv_substr($str, 1, 1, 'UTF-8');
     //按字符个数截取而非字节
    print_r(iconv_get_encoding());
     //得到当前页面编码信息
    echo iconv_strlen($str, 'UTF-8');
     //得到设定编码的字符串长度
  ?>
    

到此这篇关于“PHP使用iconv函数报错什么原因”的文章就介绍到这了,感谢各位的阅读,更多相关PHP使用iconv函数报错什么原因内容,欢迎关注网络资讯频道,小编将为大家输出更多高质量的实用文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: PHP使用iconv函数报错什么原因
本文地址: https://pptw.com/jishu/652385.html
浅谈Oracle数据库操作、表操作、数据操作 PHP判断整数位数的方法是什么

游客 回复需填写必要信息