先上代码
这是一个比较常见的中文编码测试代码,其中例子2和例子4在对中文经过编码后,都能正常传输。
唯独例子5,传递的参数是已经转过码的,但是在javascript 里会再次转码,导致参数传递失败。
例子4与例子5的区别只在于,例子4是通过onclick事件来实现函数调用的,例子5是通过href直接进行函数调用的。
至于产生这种情况的原因,尚未能够找出来,希望知道的人能够指点。
<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直接进行函数调用的。
至于产生这种情况的原因,尚未能够找出来,希望知道的人能够指点。