[JSP] QueryString 及 Form GET 的中文亂碼處理

本文章以 UTF-8 為例,傳統的做法是用:

String keyword
= new String(request.getParameter("keyword").getBytes("iso-8859-1"),"utf-8");


如果用 Tomcat 5.0.1.6 以上的版本是最好處理的,直接改 server.xml ,找到 Connector 加上紅字的部份就可以了。

<Connector port="8088"  maxThreads="150"
minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="UTF-8"  />

另外如果要從 JSP 丟出一個 URL 的中文參數值,最好是用 URLEncode 的方式比較能確保的資料是正確的。

範例:

<a href=seach.jsp?keyword=<%= java.net.URLEncoder.encode(keyword,"UTF-8") %>>
再搜尋
</a>

2 comments On [JSP] QueryString 及 Form GET 的中文亂碼處理

  • 如果是form的表单提交使用get方法呢?
    你说的URLEncoder.encode()方法就用不上了。

  • To 無聊神燈
    既然都已經寫成form 了 就用post 拉 為何自尋煩惱…

    不過本主這一個方法只能解在tomcat 上的問題…
    其他server 就無解…
    而且有些中文有跳脫字元也無法解喔…

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar