JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Servlet/JSP 討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 HttpServletRequest的setCharacterEncoding("UTF-8")問題
weberhwang





發文: 45
積分: 0
於 2018-06-13 04:02 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
環境:Windows/Tomcat 8.5.3/Servlet 3.1

大家好
關於HttpServletRequest的setCharacterEncoding("UTF-8")
因為我發現似乎都大多在doPost()時才有設定(但也有人在doGet()中有設定),目前得到的答案如下

因為規格書只有對Post有定req.setCharacterEncoding("UTF-8")的規格
Get並沒定規格,所以各家很亂都不相同,如下:

a.Web server 於 GET 之請求參數 (request parameter) 的字元編碼 (character encoding),並無一個標準的定義
b.Apache Tomcat 是使用 ISO-8859-1 作為整個URL的預設字元編碼,包括查詢字元串(GET參數)
這將導致參數被不正當的解碼,如果它們包含了ISO-8859-1字元集(character set)以外的任何字元
c.由於每個 Web server 於 GET 之 request parameter (請求參數) 的字元編碼 (character encoding) 處理方式皆不同,
所以您需要諮詢您的 Web server文件檔 (web server docs)
d.從 Tomcat 8-9 開始,在接收 GET 請求所傳送過來的字串時,都完全不需處理. 但是送出GET請求的任何網頁,
預設都必須是以UTF-8送出

但我看完上述的說明,還是不太能理解,到底在doGet()中,是否要加上req.setCharacterEncoding("UTF-8");?


weberhwang edited on 2018-06-14 02:10
reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
486 HttpServletRequest的setCharacterEncoding("UTF-8")問題 weberhwang 723 2018-06-13 04:02
346 Re:HttpServletRequest的setCharacterEncoding("UTF-8")問題 jazzG 163 2018-09-02 11:55
384 Re:HttpServletRequest的setCharacterEncoding("UTF-8")問題 caterpillar 691 2018-09-05 08:56
332 Re:HttpServletRequest的setCharacterEncoding("UTF-8")問題 caterpillar 232 2018-09-05 08:48
» JWorld@TW »  Servlet/JSP 討論區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8