您好,登錄后才能下訂單哦!
這篇文章主要講解了“javascript字符串轉(zhuǎn)換成utf-8編碼的方式有哪些”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“javascript字符串轉(zhuǎn)換成utf-8編碼的方式有哪些”吧!
javascript字符串轉(zhuǎn)換成utf-8編碼方式有:1、支持window.TextEncoder()的情況,語法“TextEncoder('utf8');”;2、利用encodeURI的編碼進行替換,語法“encodeURI(字符串)”。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
實踐中碰到了一個大問題,在 javascript 中,可能有一些中文字符串,我們想將其進行二進制流編碼的時候,需要將其轉(zhuǎn)換為 utf8 的編碼。
也就是說,輸入的是一個字符串:'呆滯的慢板今天掙了100塊錢'。
輸出的是一個字節(jié)序列:
[229, 145, 134, 230, 187, 158, 231, 154, 132, 230, 133, 162, 230, 157, 191, 228, 187, 138, 229, 164, 169, 230, 140, 163, 228, 186, 134, 49, 48, 48, 229, 157, 151, 233, 146, 177]
又或者是這一個單字節(jié)的字符串:
"\xE5\x91\x86\xE6\xBB\x9E\xE7\x9A\x84\xE6\x85\xA2\xE6\x9D\xBF\xE4\xBB\x8A\xE5\xA4\xA9\xE6\x8C\xA3\xE4\xBA\x86100\xE5\x9D\x97\xE9\x92\xB1" "???????????¢???????¤???£?o?100???é?±"
經(jīng)過不懈的折騰,終于搞明白了,有兩種解決方案:
function str2utf8(str) { encoder = new TextEncoder('utf8'); return encoder.encode(str); }
這種返回的是一個整數(shù)數(shù)組。
原理是,如果使用 encodeURI(str),其中如果碰到中文字符之類的,就會按照 utf8 編碼之后變成 %E5%91 這個樣子,我們利用這個,完了之后再將 % 替換成 \x,就得到了單個字節(jié)的串。
function str2utf8(str) { return eval('\''+encodeURI(str).replace(/%/gm, '\\x')+'\''); }
于是,我們綜合來定義一個兼容的方案:
var str2utf8 = window.TextEncoder ? function(str) { var encoder = new TextEncoder('utf8'); var bytes = encoder.encode(str); var result = ''; for(var i = 0; i < bytes.length; ++i) { result += String.fromCharCode(bytes[i]); } return result; } : function(str) { return eval('\''+encodeURI(str).replace(/%/gm, '\\x')+'\''); }
感謝各位的閱讀,以上就是“javascript字符串轉(zhuǎn)換成utf-8編碼的方式有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對javascript字符串轉(zhuǎn)換成utf-8編碼的方式有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。