一般碰到这个问题,都是因为提交页面是UTF8格式。
由于UTF8格式下转码与GB2312下转码后的内容不相同,所以百度或者谷歌淘宝都不认,而JS只能将转UTF8和LATIN,不支持GB2312、GBK,所以会出现乱码。
解决的办法其实也很简单,加这样一句
<input type="hidden" name="ie" value="utf-8">
告诉百度或者谷歌,传过去的内容是UTF8的格式,对方就不会当成GBK来处理了。
有的网站不支持UTF8的内容,比如当当、京东(对ie=utf-8没反应,或许有别的参数,但没试出来)
就需要对内容进行转换了,目前在网上搜到的方法,一种是VB的方式,在FF下无法兼容。一种需要引入一个比较大的JS。
因为需求,这两种方法都不合适,只好换了另一种方法,使用AJAX。
参考代码:
trans.php
<?
$q = $_POST['q'];
$q = iconv('UTF-8','gb2312',$q);