在php函数库有一个函数:iconv()
把gb2312置换成utf-8
1 $text=iconv("GB2312","UTF-8",$text);
在用$text=iconv(&UTF-8&P,&GB2312&P,$text)过程中,如果遇到一些特别字符时,如:&&&,英文名中的&.&等等字符,转换就断掉了。这些字符后的文字都没法继续转换了。
针对这的问题,可以用如下代码实现
1 $text=iconv("UTF-8","GBK",$text);
你没有看错,就这么简单,不使用gb2312,而写成GBK,就可以了。
还有一种方法:
第二个参数,加上//IGNORE,忽略错误,如下:
1 iconv("UTF-8","GB2312//IGNORE",$data);
没有具体比较这两种方法,感觉第一种(GBK代替gb2312)方法更好.
php手册中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.
例子 1. iconv() example:
&?phpecho iconv(&ISO-8859-1&P, &UTF-8&P, &This is a test.&);?&
string iconv ( string $in_charset , string $out_charset , string $str )
在使用这个函数进行字符串编码转换时,需要注意,如果将utf-8转换为gb2312时,可能会出现字符串被截断的情况发生。
此时可以使用以下方法解决:
1 $str=iconv('utf-8',"gb2312//TRANSLIT",file_get_contents($filepath));
即在第二个参数出添加红色字部分,表示:如果在目标编码中找不到与源编码相匹配的字符,会选择相似的字符进行转换。
此处也可以使用://IGNORE 这个参数,表示忽略不能转换的字符。
阅读(...) 评论() &php使用iconv进行从utf-8转为gb2312字符编码出错解决方案
在php函数库有一个函数:iconv()
把gb2312置换成utf-8
在用$text=iconv(“UTF-8&P,”GB2312&P,$text)过程中,如果遇到一些特别字符时,如:”--”,英文名中的”.”等等字符,转换就断掉了。这些字符后的文字都没法继续转换了。
针对这的问题,可以用如下代码实现
你没有看错,就这么简单,不使用gb2312,而写成GBK,就可以了。
还有一种方法:
第二个参数,加上//IGNORE,忽略错误,如下:
没有具体比较这两种方法,感觉第一种(GBK代替gb2312)方法更好.
php手册中iconv() 说明
4.0.5, PHP 5)
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
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.
例子 1. iconv() example:
echo iconv(“ISO-8859-1&P,
“UTF-8&P,
“This is a test.”);
string iconv ( string
$in_charset , string $out_charset , string $str )
在使用这个函数进行字符串编码转换时,需要注意,如果将utf-8转换为gb2312时,可能会出现字符串被截断的情况发生。
此时可以使用以下方法解决:
即在第二个参数出添加红色字部分,表示:如果在目标编码中找不到与源编码相匹配的字符,会选择相似的字符进行转换。
此处也可以使用://IGNORE 这个参数,表示忽略不能转换的字符。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。中国法律大全
&(免费登录)
&最新颁布法律法规
&&&&&&&&&&&&&&&&&
&
&