在ZCF中,有些时候需要往对话框的url中加入参数,如果参数值是中文,经常会出现有乱码的情况。

  造成这种现象的原因是浏览器前URL发送到服务器端时对参数值自动进行了编码,然后在JEE中间件又自动进行了解码。但具体怎么编码没有相应的国际编码,导致不同的浏览器会使用不同的字符集编码,从而造成乱码问题。

  具体请参阅:http://www.ruanyifeng.com/blog/2010/02/url_encoding.html

  解决这个问题的具体做法是:

1、 在浏览器端使用encodeURI(escape("汉字")),例如:

  diag.url = "indexScoreDialgo.zhtml?Doc="+doc+"&Query="+encodeURI(escape("中国"));

  这时候diag.url的值会变成indexScoreDialog.zhtml?Doc=446&Query=%25u4E2D%25u56FD&ContentID=&Type=&Synonym=&ID=9190

 

2、 在服务器端手工调用StringUtil.unescape($V("Query")),

  例如String query = StringUtil.unescape($V("Query"));

  这时候query的值就会变成正常的中文。