[Javascript]Big5<Switch>Utf8
最近都在處理編碼轉換,寫成function方便以後使用。
主要利用escape和unescape 方法來完成。
escape:傳回一個可在所有電腦上讀取的編碼 String 物件。
escape 方法會傳回一個字串值 (以 Unicode 格式),包含 charstring 的內容。
而所有的空格、標點符號、重音字元以及其他非 ASCII 字元均以 %xx 編碼取代,
其中的 xx 就等於表示該字元的十六進位數字。例如,空格會傳回為 "%20"。
值大於 255 的字元,則以 %uxxxx 格式儲存。
unescape:從使用 escape 方法編碼的 String 物件中傳回解碼的字串。
unescape 方法會傳回一個字串值,包含 charString 的內容。
所有以 %xx 十六進位格式編碼的字元都會以其在 ASCII 字元集的相等字元取代。
以 %uxxxx 格式 (Unicode 字元) 編碼的字元則都會被以十六進位編碼 xxxx 的 Unicode 字元取代。
Html
<textarea cols="20" rows="5" id="str">
</textarea><p/>
<input type="button" value="轉換" onclick="javascript: encode(str,this);" />
javascript
<script>
var charset="big5";
function encode(content,btn){
if(charset=="big5"){
content.value=content.value.replace(/[^\u0000-\u00FF]/g,function($0){return escape($0).replace(/(%u)(\w{4})/g,"&#x$2;")});
btn.value="還原";
charset="utf8";
}else{
content.value=unescape(content.value.replace(/&#x/g,'%u').replace(/;/g,''));
btn.value="轉換";
charset="big5";
}
}
</script>
結果
點擊轉換
點擊還原
參考