亂碼 1/2 更新記錄

  • 2019/12/23

補充 Windows 新版記事本預設為 UTF-8,以及區域設定可以選 UTF-8,並新增 Go 字串鏈結。

    • 2018/3/15

    重新審視,加些新的資訊,作些排版更新等。

    • 2013/8/19
    Servlet 中文處理(Tomcat)

    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 的倒是方便!
    • 2013/8/11

    Unicode 與 UTF

    原…  實際上採用 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 編碼基礎

    原... 這是因為JavaScript在內部是使用Unicode處理字元,實作上採用UTF-8

    改為... 這是因為JavaScript支援Unicode(內部實作上採用16位元編碼每個字串元素,大致上可視為UCS-2/UTF-16,這當中還有些歷史因素造成的細節,詳 見 Effective JavaScript 一書條款七)

    Ajax 請求與回應

    原... JavaScript在內部是使用Unicode處理字元,實作上採用UTF-8,所以傳入encodeURIComponent()的字串都是以UTF-8進行編碼,若 將encodeURIComponent()透過非同步物件發送出去

    改 為... JavaScript支援Unicode,內部實作上採用16位元編碼每個字串元素,大致上可視為UCS-2/UTF-16(這當中還有些歷史因 素造成的 細節,詳見 Effective JavaScript 一書條款七),不過,傳入encodeURIComponent()的字串最後會以UTF-8進行編碼

    • 2012/12/18
    新增 Python 的編碼
    • 2011/12/21
    新增 Rails 的編碼,連結至 Rails 學習筆記
    • 2011/10/31
    新增 Ruby 的編碼連結至 Ruby 學習筆記