⑴ php中如何把一个字符串转换为utf-8编码的 如题 谢谢了
1、把 GBK 编码字串转换成 UTF-8 编码字串 view plain to clipboardprint? <?php header("content-Type: text/html; charset=Utf-8"); echo mb_convert_encoding("你是我的好朋友","UTF-8","GBK"); ?> 2、把 UTF-8 编码字串转换成 GB2312 编码字串 view plain to clipboardprint? // 注意将此文件存盘成 utf-8 编码格式文件再测试 <?php header("content-Type:text/html;charset=gb2312"); echo mb_convert_encoding("你是我的好朋友","gb2312","utf-8"); ?> // 注意将此文件存盘成 utf-8 编码格式文件再测试 <?php header("content-Type: text/html; charset=gb2312"); echo mb_convert_encoding("你是我的好朋友","gb312","utf-8"); ?> 3、对整个页面进行转换 该方法适用所有编码环境。这样把前128个字符以外(显示字符)的字符集都用 NCR(Numeric character reference,如“汉字”将转换成“汉字”这种形式)来表示,这样的编码在任意编码环境下页面都能正常显示。 在php文件的头部加上下面三行代码: view plain to clipboardprint? mb_internal_encoding(”gb2312″); // 这里的gb2312是你网站原来的编码 mb_http_output(”HTML-ENTITIES”); ob_start(’mb_output_handler’); mb_internal_encoding(”gb2312″); // 这里的gb2312是你网站原来的编码 mb_http_output(”HTML-ENTITIES”); ob_start(’mb_output_handler’); 使用mb_convert_encoding 函数需启用PHP 的mbstring (multi-byte string)扩展
⑵ PHP怎么把经过UTF-8编码的中文字符转换成正常的中文
首先,UTF-8编码的中文字符也是正常的。
如果你认为 gb2312 才“正常”, 可以这样:
$utf8_str = '中文'; // 注意这儿得是 UTF-8 编码的字符串
$gb2312_str = mb_convert_encoding($str, 'GB2312', 'UTF-8');
%E5%90%89%E6%9E%97
有人已经回答了,
用 urldecode 就行了。
⑶ php中怎么将GB18030转换为UTF-8编码
可以使用iconv函数对编码进行转换,iconv("gb18030", "utf-8", "要转换的字符串");
iconv详细用法如下:
iconv — 字符串按要求的字符编码来转换
stringiconv(string$in_charset,string$out_charset,string$str)
将字符串 str 从 in_charset 转换编码到 out_charset。
参数:
in_charset:输入的字符集。
out_charset:输出的字符集。
如果在 out_charset 后添加了字符串 //TRANSLIT,将启用转写(transliteration)功能。
这个意思是,当一个字符不能被目标字符集所表示时,它可以通过一个或多个形似的字符来近似表达。
如果添加了字符串 //IGNORE,不能以目标字符集表达的字符将被默默丢弃。
否则,str 从第一个无效字符开始截断并导致一个 E_NOTICE。
str:要转换的字符串。
返回值:
返回转换后的字符串, 或者在失败时返回 FALSE。
⑷ PHP如何把数组里的中文Unicode转换成Utf-8编码
最简单的:
$str = iconv("gbk", "utf-8//ignore", $str);
或者:
$str = mb_convert_encoding($str, "utf-8", "gbk");
稍微解释一下 //ignore 的意思是转换不了的字符就忽略。建议把这个写上。否则遇到转换不了的字符会报错。gbk替换成你需要转换的编码就可以了。