用户通过页面输入的汉字转换为拼音 问题 我从网上下了一个转换函数和字库,用它的测试是正确的。可是转换页面返回来的汉字就错误了。例如页面输入:李强,程序得到的好像是:鏉庡己。结果拼音就成了:_shou__yi__ji_是不是先要判断进来的字符编码,再编码转换,再转为拼音? 具体应该怎么转换? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 编码问题,看样子你的输入是utf8,我以前也用过转换库,要求用gb的 是GBK,还是gb2312 ? 页面来的是utf8 ? gbk才能转化为拼音,,看看我的.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); } 本地测试这样通过了,以后不同用户输入的话,是不是要先判读是不是 UTF编码? 怎么判读? 有mb就很方便了mb_convert_encoding($str, 'GBK', 'UTF-8');编码根据你页面的,你页面什么编码提交的数据就是什么,和你页面编码不同的数据多半是伪造的,灌水机之类有的会不管编码 php socket 实现长连接 Apache + PHP中文目录问题 手机网站,css的标准问题 招聘程序员两名,版主留情!我也是为兄弟们着想啊! 请教大侠一个小问题,php的,解决不了了,急 imagettftext生成图片的程序不能在linux环境下运行。windows下可以正常执行。 这有一个协同办公系统,大家登陆后可在系统意见箱提点意见 如何把搜索出来的结果置入word文档 无限极分类怎么做折叠列表 如何提交tr一行里的数据? 一个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');
编码根据你页面的,你页面什么编码提交的数据就是什么,和你页面编码不同的数据多半是伪造的,灌水机之类有的会不管编码