JS的任何字符串操作之前都将会转义。so会看到如下:
JS无法捕获反斜杠,所以输入限制为输入\xe6
1 function utf8Decode(str){
2 var b=[],
3 arr=str.replace(/\\x/g," ").split(" ");
4 arr.shift();
5
6 var i=0,
7 j=0,
8 length=arr.length;
9 while(i<length){
10 arr[i]=parseInt(arr[i],16).toString("2");
11 if(arr[i].length<=7){
12 b.push(parseInt(arr[i],2));
14 }else{
15 j=0;
16 while(j<8){
17 if(arr[i].charAt(j)==='1'){
18 j++;
19 }else{
20 break;
21 }
22 }
23
24 //已经判断出首个字节前连续几个1
25 //判断出几个字节表示的字符
26 if(j===2){
27 b.push(parseInt(arr[i].slice(3)+parseInt(arr[++i],16).toString("2").slice(2),2));
28 }else if(j===3){
29 b.push(parseInt(arr[i].slice(4)+parseInt(arr[++i],16).toString("2").slice(2)+parseInt(arr[++i],16).toString("2").slice(2),2));
30 }else{
31 b.push(parseInt(arr[i].slice(5)+parseInt(arr[++i],16).toString("2").slice(2)+parseInt(arr[++i],16).toString("2").slice(2)+parseInt(arr[++i],16).toString("2").slice(2),2));
33 }
i++;
34 }
35 }
36
37 return b;
38
39 }
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。