❶ js腳本怎麼轉碼
可以使用js自帶的轉碼方法escape(),encodeURI()和encodeURIComponent()。
下面是詳細介紹:
Js中escape(),encodeURI()和encodeURIComponent()使用和比較:
escape方法以Unicode格式返回一個包含傳入參數內容的string類型的值。Escape方法會將傳入參數中所有的空格、標點符號、重音字元以及其它任何非ASCII字元替換為%xx的編碼形式,其中xx與其所表示的字元的16進制數表示形式相同。如空格字元的16進製表示形式為0x20,則此時xx應為20,即escape(『』)返回「%20」。
escape和unescape方法能夠幫助你編碼和解碼字元串。escape方法對於ISOLatin字元集中的字元組成的參數,返回其16進制編碼。相對應的,unescape方法則能將16進制編碼形式的參數轉化成為其ASCII碼形式。
encodeURI方法返回一個經過編碼的URI。如果將encodeURI方法的編碼結果傳遞給decodeURI方法作參數,則能得到原始的未編碼的字元串。需要注意到是encodeURI方法不編碼如下字元":","/",";",and"?"。如果想要編碼這些字元,請使用encodeURIComponent方法。
encodeURIComponent方法返回一個編碼過的URI。如果將encodeURIComponent方法的編碼結果傳遞給encodeURIComponent方法作參數,則能得到原始的未編碼的字元串。因為encodeURIComponent方法會編碼所有的字元,所以如果待編碼的字元串是用來表示一個路徑(如/dir1/dir2/index.htm)時,就一定要小心使用了。『/』符號會被其編碼之後,將不再是一個有效的路徑標識符,所以不能被web伺服器正確地識別。當字元串包含一個單獨的URIcomponent(指?後面的請求參數)的時候,請使用此方法。
escape()不編碼的字元:@*/+
encodeURI()不編碼的字元:~!@#$&*()=:/,;?+"
encodeURIComponent()不編碼的字元:~!*()''
❷ 字元串js字元串與Unicode編碼怎麼做互相轉換
一.字元串轉化為編碼
//方法1:
var str = "\\u6211\\u662Funicode\\u7F16\\u7801";
str = eval("'" + str + "'");
str = unescape(str.replace(/\u/g, "%u"));方法2:// 包裝為JSON
var dataJSON = '{"Unicode編碼": "'+ "\u7F16" +'"}';
// 使用JSON工具轉換
var objJSON = JSON.parse(dataJSON);
var unicode = objJSON["Unicode編碼"];
console.log(unicode); // 中文全月空格//二.將漢字轉化為 unicode編碼
var str = "中文";
// 獲取字元
var char0 = str.charAt(0);
console.log(char0);// "中"
// 數字編碼值
var code = str.charCodeAt(0);
console.log(code);// 20013
// 編碼互轉
var str0 = String.fromCharCode(code);
console.log(str0); // "中"
// 轉為16進制數組
var code16 = code.toString(16);
console.log(code16);// "4e2d"
// 變成字面量表示法
var ustr = "\\u"+code16;
console.log("unicode編碼",ustr ); // "\u4e2d"
❸ js 如何給中文轉碼
需要准備的材料分別有:電腦、html編輯器、瀏覽器。
1、首先,打開html編輯器,版新建html文件,例如:index.html。
❹ 如何將js中的utf 8轉換成gb2312
工具不曉得。但是代碼是有的
function Utf8ToUnicode(strUtf8)
{
var bstr = "";
var nTotalChars = strUtf8.length; // total chars to be processed.
var nOffset = 0; // processing point on strUtf8
var nRemainingBytes = nTotalChars; // how many bytes left to be converted
var nOutputPosition = 0;
var iCode, iCode1, iCode2; // the value of the unicode.
while (nOffset < nTotalChars)
{
iCode = strUtf8.charCodeAt(nOffset);
if ((iCode & 0x80) == 0) // 1 byte.
{
if ( nRemainingBytes < 1 ) // not enough data
break;
bstr += String.fromCharCode(iCode & 0x7F);
nOffset ++;
nRemainingBytes -= 1;
}
else if ((iCode & 0xE0) == 0xC0) // 2 bytes
{
iCode1 = strUtf8.charCodeAt(nOffset + 1);
if ( nRemainingBytes < 2 || // not enough data
(iCode1 & 0xC0) != 0x80 ) // invalid pattern
{
break;
}
bstr += String.fromCharCode(((iCode & 0x3F) << 6) | ( iCode1 & 0x3F));
nOffset += 2;
nRemainingBytes -= 2;
}
else if ((iCode & 0xF0) == 0xE0) // 3 bytes
{
iCode1 = strUtf8.charCodeAt(nOffset + 1);
iCode2 = strUtf8.charCodeAt(nOffset + 2);
if ( nRemainingBytes < 3 || // not enough data
(iCode1 & 0xC0) != 0x80 || // invalid pattern
(iCode2 & 0xC0) != 0x80 )
{
break;
}
bstr += String.fromCharCode(((iCode & 0x0F) << 12) |
((iCode1 & 0x3F) << 6) |
(iCode2 & 0x3F));
nOffset += 3;
nRemainingBytes -= 3;
}
else // 4 or more bytes -- unsupported
break;
}
if (nRemainingBytes != 0)
{
// bad UTF8 string.
return "";
}
return bstr;
}
❺ js格式怎麼轉換成正常漢字顯示呢\u6e05\u534e\u5927\u5b66
不用轉換,直接用,就可以了。
可以試試
var a ='\u5a92\u5927\u5b66';
alert(a);
document.body.innerHTML=a
不論是alert,還是直接放到innerHTML里,都可以用的,前提是要通過腳本來使用。
我記得好像是說javascript本身就是unicode編碼,而這種'\u5a92\u5927\u5b66'形式恰好就是unicode的編碼形式,還有形式的呢。
❻ Js:關於decodeURIComponet()解碼Unicode問題
<script type="text/javascript">
var x = "\u9a6c";
var y = "\\" + "u9a6c";
var a = decodeURIComponent(x);
var b = decodeURIComponent(y);
alert("x:" + x + " | " + "y:" + y + " | " + (x == y) + " | a:" + a + " | b:" + b);
</script>
結果:
x:馬 | y:\u9a6c | false | a:馬 | b:y:\u9a6c
"\u9a6c" 字元串就是一個漢字馬 而這個不是漢字 "\\" + "u9a6c"; 字元串的時候就已經轉義了
JSON有一個防止漢字亂碼的時候,就是以這些轉義符來替代漢字的,都是JS直接就識別了