ページ処理URLパラメータに中国語の問題が発生

1511 ワード

私達はデータベースからデータを取り出してページの表示に着く時、時には伝参を行う過程の中で、URLのアドレスの欄の中で中国語の現象が現れるかもしれなくて、一部のブラウザは中国語に対する支持があるかもしれなくて、例えば:火狐、IE 7以上など、これらのブラウザは自分で中国語のトランスコードを行うことができて、IE 6の下で中国語が現れる時文字化け現象が現れて、あるいは、私たちのアドレスバーに中国語が表示されたくない場合は、以下の方法で処理することができます.
1)jsコードでアドレスバーを処理する:
   <script type="text/javascript">        	window.location.href=encodeURI("http://www.baidu.com?u=  &k=  ");     </script>

トランスコード後のアドレス情報:http://www.baidu.com/?u=%E4%BD%A0%E5%A5%BD&k=%E5%A4%A7%E5%AE%B6
2)我々のアドレス情報がaタグを用いてページに書かれている場合,jsにおけるencodeURIメソッドを用いることができなくなり,この場合,我々は次のような処理を行うことができる.
 <script type="text/javascript">       document.write('<li><a href="'+encodeURI("http://www.baidu.com?u=  &k=  ")+'">  </a></li>');     </script>

結果は上記と同じで、ループラベルを使用する場合があります.
 <c:forEach var="dishType" items="${searchCount}">       document.write('<li><a href="'+encodeURI("http://www.baidu.com?type=${dishType.type_name}&hell0=   ")+'">  </a></li>');     </script>   </c:forEach>

同じように私たちのすべての中国語のurlアドレスをトランスコードして、このように私たちは伝参の時に中国語の現象が現れません!3)バックグラウンドに入ると文字化けしてしまうことがあります.バックグラウンドでコードを使って復号することができます.
http://search.do?query=%E5%A4%A7%E5%AE%B6
URLDecoder.decode(this.query,“utf-8”)、queryはパラメータで要求された中国語情報である
これで私たちの中国語はとても良い処理を得ます!!