❶ 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直接就识别了