最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
php 字符串编码转换程序
时间:2013-03-08 编辑:简简单单 来源:一聚教程网
iconv函数的一个bug。iconv在转换字符”—”到gb2312时会出错
解决方法很简单,就是在需要转成的编码后加 “//IGNORE” 也就是iconv函数第二个参数后.
如下:
以下为引用的内容:
代码如下 | 复制代码 |
iconv(“UTF-8″,”GB2312//IGNORE”,$data) |
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。
这个iconv()这个函数,在php5中是内置的.
列子
代码如下 | 复制代码 |
echo $str= '你好,这里是卖咖啡!'; echo iconv('GB2312', 'UTF-8', $str); //将字符串的编码从GB2312转到UTF-8 echo iconv_substr($str, 1, 1, 'UTF-8'); //按字符个数截取而非字节 echo iconv_strlen($str, 'UTF-8'); //得到设定编码的字符串长度 //也有这样用的 $content = iconv("UTF-8","gbk//TRANSLIT",$content); |
但是使用iconv函数可能会碰到如notice: iconv() [function.iconv]: detected an illegal character in input string ...错误了,
原因是因为这个编码范围的问题,gb2312小于gbk小于uft8哦,所以大家转换时要注意了,不过我们php还提供了一个函数mb_detect_encoding他可以比较好的解决这个问题了。
现在把它写成更专业的函数
代码如下 | 复制代码 |
function phpcharset($data, $to) { |
有时我们不知道字符的编码这时会需要先检测出编码再进行转换。
代码如下 | 复制代码 |
|
-
上一个: php去除二维数组中重复值程序
-
下一个: php实现中文文件名文件下载
相关文章
- PHP导出数据超时的优化建议解读 10-31
- PHP之mysql位运算解析 10-31
- Laravel实现登录跳转功能解析 10-31
- php双向队列解读 10-31
- Laravel异常上下文解决教程 10-24
- php数组查询元素位置方法介绍 10-24