2011年5月28日 星期六

[Encoding] URL encode

  • URL 中只能出現部分的 ASCII 碼; 這些 ASCII 碼包含 a-z、A-Z、0-9、以及一些特殊字元和保留字元。因此若不是 ASCII 碼的任何部分,瀏覽器便必須對其進行編碼。
  • 對於 URL 的編碼要分前段後段
    • 前段會依瀏覽器的設定編碼,例: chrome 預設使用 UTF8; IE 預設使用 Big5 經設定後才能改為 UTF8
    • 後段則依使用者端設定編碼,例: chrome 預設使用 UTF8;
  • ISO-8859-1 是一個支援西歐語系的編碼,它是無法正確顯示中文。
  • 當設定網頁的編碼方式的時候(利用 meta 標籤),請選擇能夠呈現網頁內容的編碼;以台灣常見的正體中文來說,可以選擇 Big5 或者 UTF-8。
  • 當網頁經由 <form> 標籤傳送中文資料到伺服器端的時候,Firefox 和 IE(其他的瀏覽器可以自行去測試)會將 URL 中的中文資料依照網頁的編碼 方式來 encode。
  • 如果伺服器端使用的是 Tomcat 5.5.x 版,其預設的解讀中文資料的方式 是以 ISO-8859-1 來進行,因此會顯示亂碼;再進一步處理(或者顯示、儲存) 資料之前,請先給予適當的編碼;也就是說,若網頁編碼為 Big5,請在伺服器端 轉成 Big5;若網頁編碼為 UTF-8,請在伺服器端的程式將其轉成 UTF-8。



* Reference
- 關於各瀏覽器對網頁與文字編碼的處理規則研究整理 **
- 細談 URL 編碼 **

沒有留言:

張貼留言