星期四, 9月 13, 2012

編碼問題

一堆encode方法,搞不清楚用的時機嗎
嗯  我承認我記不起來...
  • base64encode
    將資料利用64個字母(ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/)來表達,具不可讀性
    標準的Base64並不適合直接放在URL裡傳輸,因為URL編碼器會把標準Base64中的「/」和「+」字元變為形如「%XX」的形式,而這些「%」號在存入資料庫時還需要再進行轉換,因為ANSI SQL中已將「%」號用作通配符。
  • urlencode
    看完base64encode的問題,就應該瞭解為何需要urlencode了。urlendcode會轉成%XX
  • htmlentities

    如果要在網頁上出現html碼,就要透過htmlentities編碼
    也就tag的大於會變成%lt;,小於會變成%gt;
    decode: html_entity_decode()

    *htmlentities跟htmlspecialchars幾乎一樣,但htmlentities也會把中文轉成成html的東西,所以要注意

常見問題
GET傳送中文時會變成亂碼
用Big5編碼透過URL傳送GET不會有問題,但是如果使用UTF8編碼您會發現中文都會變成亂碼,這時候您要使用GET傳送時,必須先使用urlencode將要傳送的資料加密,這樣傳送中文則會正常。

沒有留言: