iconv可以做到的,lz好好研究一下。
解决方案 »
- php操作mysql,mysql_query(): supplied argument is not a valid MySQL-Link re
- 获取mysql查询返回数量,求助高手
- 为什么用localhost,127.0.0.1可以访问,但用ip却不行(apache+php+mysql)?
- microtime: 取得目前时间的 UNIX 时间戳记的百万分之一秒值 是什么意思
- 关于PHP开发HTTP服务器
- 只有十分了,问个写入文数据库的问题.
- jpgraph使用问题
- PHP有分WIN和非WIN的吗???
- 怎样连接远程的数据库啊?
- 目前有个需求,用户需要连续6个月,每月订单数量大于或等同于60单以上,用户的身份会升级,php mysql 应该怎样实现啊?
- php+ajax的数据时时显示问题
- 我把所有的静态页面都通过PHP来输出,是不是对搜索引擎有负面影响>
使用
$newstr = iconv('utf-8', 'gb2312', $oldstr); //utf-8别写成utf8
即可。
iconv.output_encoding=gb2312
不成功啊。只有一种情况是成功的。就是网页本身如果是 gn2312编码的 就成功。但是不是iconv成功还是本身就不需要转换。
function encodeURIComponent($text) {
preg_match_all( "/[\x81-\xfe]?./ ",$text,$regs);
$rtext = " ";
foreach($regs[0] as $v) {
$ch = iconv( "gb2312 ", "UTF-8 ",$v);
$rtext .= sprintf( "%%%02X%%%02X%%%02X ",ord($ch[0]),ord($ch[1]),ord($ch[2]));
}
return $rtext;
} function escape($str){
preg_match_all( "/[\x80-\xff]. ¦[\x01-\x7f]+/ ",$str,$newstr);
$ar = $newstr[0];
foreach($ar as $k=> $v){
if(ord($ar[$k])> =127){
$tmpString=bin2hex(iconv( "GBK ", "ucs-2 ",$v));
if (!eregi( "WIN ",PHP_OS)){
$tmpString = substr($tmpString,2,2).substr($tmpString,0,2);
}
$reString.= "%u ".$tmpString;
} else {
$reString.= rawurlencode($v);
}
}
return $reString;
}
function unescape($str) {
$str = rawurldecode($str);
preg_match_all( "/(?:%u.{4}) ¦&#x.{4}; ¦&#\d+; ¦.+/U ",$str,$r);
$ar = $r[0];
foreach($ar as $k=> $v) {
if(substr($v,0,2) == "%u "){
if (!eregi( "WIN ",PHP_OS)){
$tmpString = "%u ".substr($v,4,2).substr($v,2,2);
}
$ar[$k] = iconv( "UCS-2 ", "GB2312 ",pack( "H4 ",substr($tmpString,-4)));
}
elseif(substr($v,0,3) == "&#x ")
$ar[$k] = iconv( "UCS-2 ", "GB2312 ",pack( "H4 ",substr($v,3,-1)));
elseif(substr($v,0,2) == "&# ") {
$ar[$k] = iconv( "UCS-2 ", "GB2312 ",pack( "n ",substr($v,2,-1)));
}
}
return join( " ",$ar);
} 看看有没你需要的
现在,我想在网页上生成数据然后输入到该表中,因为网页是 UTF8编码 所以我想到编码转换。 不知道我的思路对不对然后我就问了以上的问题。希望高手回答一下
例如, mysql_query($sql) 写成类 $db->query($sql).类 $db 中的 query() 这样定义:function query($sql){
return mysql_query(iconv("utf-8","gb2312//ignore",$sql));
}$db->query($sql) 查询的时候,自动会转成 gb2312 码再查询
把表的编码转为 utf8_general_ci在网页中, 查询之前执行 set names 'utf-8'
在C++中, 查询之前执行 set names 'gb2312'