用iconv将utf-8中文编码转为gb2312字符编码出错解决方案

添加时间:11-02-17 所属分类:PHP工具与代码
  转载自http://www.path8.net/tn/archives/2560

iconv()函数可以把gb2312置换成utf-8

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

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

[code]$text=iconv("UTF-8","GBK",$text);[/code]
你没有看错,就这么简单,不使用gb2312,而写成GBK,就可以了。

还有一种方法:

第二个参数,加上//IGNORE,忽略错误,如下:
[code]iconv("UTF-8","GB2312//IGNORE",$data);[/code]
没有具体比较这两种方法,感觉第一种(GBK代替gb2312)方法更好.

php手册中iconv() 说明

[code] iconv

(PHP 4 >= 4.0.5, PHP 5)

iconv – Convert string to requested character encoding

Description

string iconv ( string in_charset, string out_charset, string str )

Performs a character set conversion on the string str from in_charset to out_charset. Returns the converted string or FALSE on failure.

If you append the string //TRANSLIT to out_charset transliteration is activated. This means that when a character can’t be represented in the target charset, it can be approximated through one or several similarly looking characters. If you append the string //IGNORE, characters that cannot be represented in the target charset are silently discarded. Otherwise, str is cut from the first illegal character.[/code]
例子 1. iconv() example:

[code]<?php
echo iconv(“ISO-8859-1″, “UTF-8″, “This is a test.”);
?> [/code]

[code]string iconv ( string $in_charset , string $out_charset , string $str )[/code]

在使用这个函数进行字符串编码转换时,需要注意,如果将utf-8转换为gb2312时,可能会出现字符串被截断的情况发生。

此时可以使用以下方法解决:

[code]//author:zhxia
$str=iconv(‘utf-8′,”gb2312//TRANSLIT”,file_get_contents($filepath));[/code]
即在第二个参数出添加红色字部分,表示:如果在目标编码中找不到与源编码相匹配的字符,会选择相似的字符进行转换。

此处也可以使用://IGNORE 这个参数,表示忽略不能转换的字符。

前篇:strftime()函数将月份和时间显示转换成中文... 后篇:丁磊养猪场即将投入建设 年内拟邀请媒体参观
发表我的评论


推荐文章   黄河大米的重振之路   一份工资收支表 见证四十年改革新成就—...   第一罐液化气是从北京背来的 济南燃气五...   在深山当38年老师,用草棒当笔交学生,...   结婚50年,是什么感觉?济南历城区40对...
随机文章   对 mysql Illegal mix of collations (...   mysql中gbk_chinese_ci与gbk_bin区别   php字符串截取函数substr和中文截取:m...   Snoopy 用来模仿web浏览器的功能,它能...   Snoopy功能强大的模拟浏览器方法的PHP类
广告

其他推荐

因为本站所有内容均转载自其它媒体,本意为公众提供免费服务,但并不代表本网赞同其观点,也不能对其真实性验证负责,如稿件版权单位或个人不想在本网发布,请与我联系,本人会立即将其撤除,谢谢.联系方式:atseashawk@163.com QQ:99289555