- 2019/12/23
補充 Windows 新版記事本預設為 UTF-8,以及區域設定可以選 UTF-8,並新增 Go 字串鏈結。
- 2018/3/15
- 2013/8/19
- 2013/8/11
- 2012/12/18
- 2011/12/21
- 2011/10/31
重新審視,加些新的資訊,作些排版更新等。
Tomcat 7不知道哪個版本開始,server.xml 中設定 <Connector URIEncoding="utf-8"...>…
以 前版本的設定是 <Connector URIEncoding="iso-8859-1"...>, 因此過去處理 GET 的中文亂碼時,可以new String(param.getBytes("ISO-8859-1"), "your encoding") 來 解決,不過如果 server.xml 中設定<Connector URIEncoding="utf-8"...> 就不適用了,例如你是 Big5 的 URI 編碼過來的話,用 utf-8 來解釋,可能會沒有對應編碼,也就是顯示時會是「?」,這樣通常就沒救了 …
如 果你以前就是用 new String(param.getBytes("ISO-8859-1"), "your encoding") 來 處理 GET 時的亂碼,那就將 <Connector URIEncoding="utf-8"...>… 改回 <Connector URIEncoding="iso-8859-1"...> 就可以了…
<Connector URIEncoding="utf-8"...> 的 設定,對於系統是 UTF-8 的倒是方便!
原… 實際上採用 UCS-2/UTF-16 儲存,一開頭的兩個位元組(ff fe)是用來識別檔案採用的位元組順序,稱為BOM(byte order mark),之後使用兩個位元組來儲存每個Unicode字元。
改 為… 實際上採用 UCS-2/UTF-16 儲存(UTF-16是UCS-2的後續者,兩者差異對語言會有影響,實例之一可參考 Effective JavaScript 一書條款七),一開頭的兩個位元組(ff fe)是用來識別檔案採用的位元組順序,稱為BOM(byte order mark),之後使用兩個位元組來儲存每個Unicode字元。
原... 這是因為JavaScript在內部是使用Unicode處理字元,實作上採用UTF-8
改為... 這是因為JavaScript支援Unicode(內部實作上採用16位元編碼每個字串元素,大致上可視為UCS-2/UTF-16,這當中還有些歷史因素造成的細節,詳 見 Effective JavaScript 一書條款七)
原... JavaScript在內部是使用Unicode處理字元,實作上採用UTF-8,所以傳入encodeURIComponent()的字串都是以UTF-8進行編碼,若 將encodeURIComponent()透過非同步物件發送出去
改 為... JavaScript支援Unicode,內部實作上採用16位元編碼每個字串元素,大致上可視為UCS-2/UTF-16(這當中還有些歷史因 素造成的 細節,詳見 Effective JavaScript 一書條款七),不過,傳入encodeURIComponent()的字串最後會以UTF-8進行編碼