我从网上下了一个转换函数和字库,用它的测试是正确的。可是转换页面返回来的汉字就错误了。例如页面输入:李强,程序得到的好像是:鏉庡己。结果拼音就成了:_shou__yi__ji_是不是先要判断进来的字符编码,再编码转换,再转为拼音? 具体应该怎么转换?
解决方案 »
- 如何获得MySQL数据库使用的大小
- mod_rewrite问题
- 在windows xp sp3下怎样安装网站管理系统
- 不需与服务器交互的网页开发语言或工具,请好心人推荐
- 下拉列表单问题
- php5的安装新问题:PHP has encountered an Access Violation at 011D73CD错误提示。
- 急:为什么我的php显示中文时为乱码啊??
- 怎样把input框中的值传给button按钮的函数作为参数?
- 请问PHP如何处理这种数据类型?
- 请问PHP里XPath查找出数据后如何让它不返回数据结构只返回值?
- 一个SQL语句的问题。高手帮帮忙
- 帮忙分析一下这段PHP程序里正则表达式的含义
是GBK,还是gb2312 ? 页面来的是utf8 ?
http://hi.baidu.com/jlzan1314/blog/item/8dfc3bed328c183726979191.html
不过,这个函数好像是转到GB2312,竟然也对了。是巧合吗?是否必须GBK?另外, jlzan1314 博客里的 function g(),是编码转换到GBK吗?function _U2_Utf8_Gb($_C)
{
$_String = '';
if($_C < 0x80) $_String .= $_C;
elseif($_C < 0x800)
{
$_String .= chr(0xC0 | $_C>>6);
$_String .= chr(0x80 | $_C & 0x3F);
}elseif($_C < 0x10000){
$_String .= chr(0xE0 | $_C>>12);
$_String .= chr(0x80 | $_C>>6 & 0x3F);
$_String .= chr(0x80 | $_C & 0x3F);
} elseif($_C < 0x200000) {
$_String .= chr(0xF0 | $_C>>18);
$_String .= chr(0x80 | $_C>>12 & 0x3F);
$_String .= chr(0x80 | $_C>>6 & 0x3F);
$_String .= chr(0x80 | $_C & 0x3F);
}
return iconv('UTF-8', 'GB2312', $_String);
}
mb_convert_encoding($str, 'GBK', 'UTF-8');
编码根据你页面的,你页面什么编码提交的数据就是什么,和你页面编码不同的数据多半是伪造的,灌水机之类有的会不管编码