`

发现一个有趣的中文乱码问题

阅读更多
先上代码
<head>
<script type="text/javascript">
		function openWin(src){
			alert(src);
			window.open(src);
		}
	</script>
  </head>
  
  <body>
    例子1:<a href="cn_show.jsp?cn=显示中文" >显示中文</a><br>
    例子2:<a href="cn_show.jsp?cn=<%=URLEncoder.encode("显示中文","GBK") %>" >编码后显示中文</a><br>
    例子3:<a href="javascript:openWin('cn_show.jsp?cn=显示中文');" >打开中文窗口</a><br>
    例子4:<a href="#" onclick="openWin('cn_show.jsp?cn=<%=URLEncoder.encode("显示中文","GBK") %>');" >编码后打开中文窗口</a><br>
    例子5:<a href="javascript:openWin('cn_show.jsp?cn=<%=URLEncoder.encode("显示中文","GBK") %>');" >编码后打开中文窗口-错误写法</a><br>
  </body>


这是一个比较常见的中文编码测试代码,其中例子2和例子4在对中文经过编码后,都能正常传输。
唯独例子5,传递的参数是已经转过码的,但是在javascript 里会再次转码,导致参数传递失败。
例子4与例子5的区别只在于,例子4是通过onclick事件来实现函数调用的,例子5是通过href直接进行函数调用的。

至于产生这种情况的原因,尚未能够找出来,希望知道的人能够指点。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics