js UTF传中文参数到GBK之所以不行是因为其字符长度不同个中文在UTF中为个字符而GBK为个字符所以导致encodeURL后不同编码内容不一致
要转换编码怎么都离不开服务器所以最佳办法是做一个中转页面你可以提示“正在跳转到xxx”但是这个页面的实质是处理中文参数问题通过js用URl传参到中转页面中转页面再通过$_GET来判断是否有参数有则用iconv转换编码然后再组合转换好的URL参数跳转到GBK页面
下面是作者的一个简单的中转业供不懂的同学参考
代码如下 <!DOCTYPE html>
<html xmlns=“:lang=“zh
CN” lang=“zh
CN”>
<head>
<meta http
equiv=“Content
Type” content=“text/html; charset=gbk” />
</head>
<body>
<h
>正在跳转到相应服务器……
</h
>
<?php
$url = array(
‘tmall’ => ‘
’
buy’=> ‘
);
if( $_GET[
url
] == ” && $_GET[
q
] == ” )
echo ‘<script>alert(“参数有误
点确定后将自动跳转回首页”);window
location
href=“http://’
$_SERVER[
HTTP_HOST
]
’”</script>’;
else
{
echo ‘<script>window
location
href=“‘
$url[$_GET[
url
]]
iconv(‘UTF
′
’GBK’
$_GET[
q
])
’”</script>’;
}
?>
</body>
</html>
UTF页面引用外部编码为GBK的JS文件编码的处理
比如对于QQ的IP返回城市的接口的js我们使用下面的代码可是在UTF页面中正常的显示GBK编码的js
代码如下
<script type=”text/javascript” src=”
这样子我就成功的解决了在UTF页面中引入编码为GBK的JavaScript文件乱码问题了而且不需要额外的写函数处理GBK转UTF编码同样对于GBK页面引用编码为UTF编码的JavaScript文件如果出现乱码问题可以使用下面的代码来解决
代码如下
<script type=”text/javascript” src=”testjs” charset=”utf″></script>
此方法是对于在js文件中出现汉字中文以及其他容易造成在GBK与UTF编码错误字符的时候使用对于纯英文的就不需要了如果为了保险加上也无妨~