為了解決一個Javascript問題,學會幾則處理特殊符號的小常識,做成筆記備忘:

  1.  相當於ASCII 160
    <span id="x">&nbsp;</span>,jQuery("#x").text()會傳回一個像空白的符號,其實是ASCII 160。
  2. 查字元的ASCII碼
    要怎麼證明&nbsp;會變成ASCII 160呢? alert($("#x").text().charCodeAt(0));
  3. 將ASCII碼轉成字元
    var c = String.fromCharCode(160);
  4. 在字串中直接標註特殊字元
    \ddd (三位數,代表八進位ASCII)
    \xdd (x加兩位數,代表十六進位ASCII碼)
    \udddd (u加四位數,用Unicode碼表示,又叫UCN, Unicode Character Name)
    (\' \" \\ \r \n \t 這些常用的就不多介紹了,參考)
    所以ASCII 160可寫成var c = "\xa0";
  5. 在HTML中表示特殊符號
    不可省略的空白除了用&nbsp;表示外,也可以用&#160;這種類似UCN的寫法。
    (這裡有完整的符號表)

另外,無意搞出一個$("\xa0"),結果在IE7下會爆炸,但在IE8卻可過關。追了一下,發現是IE8支援querySelectorAll,執行邏輯不同所致。跨瀏覽器的路上石頭還真多~~~


Comments

# by DrKN

看了後感覺有XSS cheat sheet 的感覺.....

Post a comment