php中可以使用iconv()函数来将gbk编码转为utf8编码;iconv函数可以将一种已知的字符集文件转换成另一种已知的字符集文件,语法格式“iconv('GBK' 'UTF-8' 字符串)”。
推荐:《PHP视频教程》
php中将gbk转为utf8
php中,可以使用iconv()函数来将gbk转为utf8。
iconv函数可以将一种已知的字符集文件转换成另一种已知的字符集文件。例如:从GB2312转换为UTF-8。
iconv函数在php5中内置,GB字符集默认打开。
示例:
<phpheader("Content-type:text/html;charset=GB2312");echo $str= '你好,这里是gbk转utf8!'echo '<br />'echo iconv('GB2312' 'UTF-8' $str); //将字符串的编码从GB2312转到UTF-8
说明:php iconv函数
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手册中iconv() 说明:
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.
在使用这个函数进行字符串编码转换时,需要注意,如果将utf-8转换为gb2312时,可能会出现字符串被截断的情况发生。此时可以使用以下方法解决:
$str=iconv('utf-8'"gb2312//TRANSLIT"file_get_contents($filepath));
即在第二个参数出添加红色字部分,表示:如果在目标编码中找不到与源编码相匹配的字符,会选择相似的字符进行转换。此处也可以使用://IGNORE 这个参数,表示忽略不能转换的字符。
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。
iconv不是php的默认函数,也是默认安装的模块。需要安装才能用的。
如果是windows2000+php,你可以修改php.ini文件,将extension=php_iconv.dll前的""去掉,同时你要copy你的原php安装文件下的iconv.dll到你的winnt/system32下(如果你的dll指向的是这个目录)。在linux环境下,用静态安装的方式,在configure时加多一项 --with-iconv就可以了,phpinfo看得到iconv的项。(Linux7.3+Apache4.06+php4.3.2)。
mb_convert_encoding与iconv函数介绍
mb_convert_encoding这个函数是用来转换编码的。原来一直对程序编码这一概念不理解,不过现在好像有点开窍了。不过英文一般不会存在编码问题,只有中文数据才会有这个问题。比如你用Zend Studio或Editplus写程序时,用的是gbk编码,如果数据需要入数据库,而数据库的编码为utf8时,这时就要把数据进行编码转换,不然进到数据库就会变成乱码。
做一个GBK To UTF-8:
<php header("content-Type: text/html; charset=Utf-8"); echo mb_convert_encoding("你系我的友仔" "UTF-8" "GBK"); ?>
再来个GB2312 To Big5:
<php header("content-Type: text/html; charset=big5"); echo mb_convert_encoding("你是我的朋友" "big5" "GB2312"); ?>
不过要使用上面的函数需要安装但是需要先enable mbstring 扩展库。
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )需要先enable mbstring 扩展库,在 php.ini里将; extension=php_mbstring.dll 前面的 ; 去掉mb_convert_encoding 可以指定多种输入编码,它会根据内容自动识别,但是执行效率比iconv差太多;
string iconv ( string in_charset, string out_charset, string str )注意:第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,其中 //TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符,//IGNORE 会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断。
一般情况下用 iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用mb_convert_encoding 函数。
$content = iconv("GBK" "UTF-8″, $content);$content = mb_convert_encoding($content, "UTF-8″, "
更多编程相关知识,请访问:编程学习课程!
温馨提示:内容为网友见解,仅供参考
php中gbk怎么转为utf8?
php中将gbk转为utf8 php中,可以使用iconv()函数来将gbk转为utf8。iconv函数可以将一种已知的字符集文件转换成另一种已知的字符集文件。例如:从GB2312转换为UTF-8。iconv函数在php5中内置,GB字符集默认打开。示例:<phpheader("Content-type:text\/html;charset=GB2312");echo $str= '...
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
`mb_convert_encoding`的官方文档可以在 \/cn.***.net\/manual\/zh\/function.mb-convert-encoding.php>`_ 查看,例如,从GBK转UTF-8的代码如下:php header("content-Type: text\/html; charset=UTF-8");echo mb_convert_encoding("你系我的友仔", "UTF-8", "GBK");同样,GB2312到Big5的转换...
php中怎么将GB18030转换为UTF-8编码
可以使用iconv函数对编码进行转换,iconv("gb18030", "utf-8", "要转换的字符串");iconv详细用法如下:iconv — 字符串按要求的字符编码来转换 string iconv ( string $in_charset, string $out_charset, string $str)将字符串 str 从 in_charset 转换编码到 out_charset。参数:in_charset:输入...
织梦gbk数据怎么导入到utf8
如果你没有对默认的文件做任何更改,就只要传个全新的UTF8程序上去,然后更改data目录下common.inc.php文件的数据库链接信息即可 2、如果你改过文件,比如模板,你可以用Dreamweaver(或UltraEdit或者editplus)打开文件点击另存为选择你要保存的编码的方法,将改过的 文件重新上传覆盖一下!
怎么把ucs2转换成utf8
在PHP中,常用这个 iconv 函数转。如下:nowcontent = iconv("GBK","UTF-8",$content);此把GBK编码转为UTF8编码
把一个已经按gbk编码的mysql库转成utf-8?
为了将已按GBK编码的MySQL数据库转为UTF-8格式,首先需要获取数据库的备份或导出数据。若未找到合适的工具,可尝试新建一个编码为UTF8的数据库。然后,通过编写脚本(如使用PHP或其他编程语言)实现数据的逐表逐行转换。编写脚本是最佳选择,因为它能形成个人的流程标准。脚本需包含GBK到UTF-8的字符编码...
将织梦网页GBK\/GB2312编码转换为UTF-8编码的步骤分析方法
1. 备份原网站:在开始转码前,务必备份原始GBK或GB2312的网站程序,包括数据库和文件。利用数据库备份功能,如智盟CMS的后台工具,备份数据库,同时下载所有网站文件至本地。2. 数据库转码:使用帝国数据备份王将数据库转为UTF-8,输入原数据库信息,选择“utf-8”编码,备份后记得保存转码后的路径,...
怎么用PHP把unicode转成utf8
比如控制台当前的编码是 UTF-8, 那么 UTF-8 编码的东西能正确显示,GBK 就不能;同样,当前编码是 GBK, 就能显示 GBK 编码,后来的系统应该更智能的处理好更多的转换了。不过通过 putty 等终端还是需要设置好终端的编码转换以解除乱码的烦恼。PHP中对汉字进行UNICODE编码和解码的实现 \/\/将内容进行...
UTF-8编码的程序POST数据给一个GBK编码的程序接收,应该怎么办
在发送数据时,您需要将数据从UTF-8编码转换为GBK编码。转换方法可借助编程语言中的字符串解码函数,具体实现取决于您所使用的编程语言。例如,在PHP中,可以使用`iconv`函数进行编码转换,如`iconv("UTF-8", "GBK", $data)`,其中`$data`表示需要转换的UTF-8编码字符串。另一方面,接收端应具备...
中文url编码、base64编码,PHP解码中文部分乱码
如你所说,对方服务器发来的是GBK编码的内容,如果你本地PHP用的编码不是GBK就会是乱码 2种解决方案:将页面编码更改为GBK(可以通过header('Content-Type:text\/html charset=gbk');)将GBK编码转为当期页面编码(假设当前页面是utf-8),可以使用iconv('gbk','utf-8',$content);其中$content是你经过...