关于utf-8和gb2312转换问题

时间:2023-01-06 07:26:22
现有一个网站A 是utf-8格式 我在网站内做了一个html页面也是utf-8的 包括中文
其中有几个超链接如
<a href="http://www.xxx.com:9999/?USER=未注册用户">xxxx</a>
此html在网站A上没问题 没有乱码 而此链接是跳转到网站B的

网站B是gb2312的,问题来了,网站A是utf-8,点击超链接跳转到网站B
跳转到B后地址栏显示的中文不是乱码已然是:http://www.xxx.com:9999/?USER=未注册用户
但是页面里面却我获取的user 却是乱码了

请问如何解决在跳转过程中把地址的中文转换成gb2312啊 
尽量在网站A中的html中改代码 网站A和B不用改代码 只是我的HTML页面更改即可

补充一下 如果把html换成gb2312 在网站A中打开页面显示乱码 都是方块菱形等等乱码

而现在utf-8的html跳转到网站B后 地址栏中文正常,网站B页面显示却是“缃戣亰鐢ㄦ埛”并非方块菱形的乱码

如果跳转后保持地址栏不变 再按一下回车等于重新载入页面 网站B页面显示就正常了 没有乱码 

7 个解决方案

#1


大家帮帮忙 谢谢

#2


难啊。

人家没有进行解码处理。

baidu、google 的url 参数接收的时候自动使用正确的编码进行解码。

b网站的工作没做到位 。

#3


改成调用js也不行 
<Script Language="JavaScript">
function hi(url){ 

window.open(url,"","");//这样弹新窗没问题 不是乱码
window.open(url,"_self");//当前页面就不行 还是乱码


</Script>
<a href="javascript:hi('http://www.xxx.com:9999/?USER=网聊游客')" >xxxx</a>
这样open弹新窗 没问题,当前页面还是乱码 老郁闷呢

#4


JS里面添加
var name=escape(document.getElementById("name").value);

#5


引用 4 楼 eric_lu780 的回复:
JS里面添加
var name=escape(document.getElementById("name").value);


这样也不行 补充一下 我网站A的html跳转到网站B 但是还在网站A的父窗体内

#6


引用 5 楼 lyyailxj12 的回复:
引用 4 楼 eric_lu780 的回复:JS里面添加
var name=escape(document.getElementById("name").value);

这样也不行 补充一下 我网站A的html跳转到网站B 但是还在网站A的父窗体内

我的意思是,你在执行http://www.xxx.com:9999/?USER=未注册用户的时候
对“未注册用户”进行escape..也不行吗

#7


这不是页面编码,和utf8和gb2312无关
点击链接时,浏览器会帮自动帮你加密,所以A站没问题,不需要动
问题是B站接收时必须进行解码

#1


大家帮帮忙 谢谢

#2


难啊。

人家没有进行解码处理。

baidu、google 的url 参数接收的时候自动使用正确的编码进行解码。

b网站的工作没做到位 。

#3


改成调用js也不行 
<Script Language="JavaScript">
function hi(url){ 

window.open(url,"","");//这样弹新窗没问题 不是乱码
window.open(url,"_self");//当前页面就不行 还是乱码


</Script>
<a href="javascript:hi('http://www.xxx.com:9999/?USER=网聊游客')" >xxxx</a>
这样open弹新窗 没问题,当前页面还是乱码 老郁闷呢

#4


JS里面添加
var name=escape(document.getElementById("name").value);

#5


引用 4 楼 eric_lu780 的回复:
JS里面添加
var name=escape(document.getElementById("name").value);


这样也不行 补充一下 我网站A的html跳转到网站B 但是还在网站A的父窗体内

#6


引用 5 楼 lyyailxj12 的回复:
引用 4 楼 eric_lu780 的回复:JS里面添加
var name=escape(document.getElementById("name").value);

这样也不行 补充一下 我网站A的html跳转到网站B 但是还在网站A的父窗体内

我的意思是,你在执行http://www.xxx.com:9999/?USER=未注册用户的时候
对“未注册用户”进行escape..也不行吗

#7


这不是页面编码,和utf8和gb2312无关
点击链接时,浏览器会帮自动帮你加密,所以A站没问题,不需要动
问题是B站接收时必须进行解码