Home  >  Article  >  Web Front-end  >  I am urgently seeking advice. When transferring parameters to two HTML pages, the Chinese characters appear garbled. I tried the online method but it didn't work. _html/css_WEB-ITnose

I am urgently seeking advice. When transferring parameters to two HTML pages, the Chinese characters appear garbled. I tried the online method but it didn't work. _html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 12:25:051188browse

Chinese garbled characters in js html java development


	  Dialog = $.ligerDialog.open({url:"plot.htm?examCourse="+examCourse+"examScore="+examScore+"averageScore="+averageScore+"classRank="+classRank, height: 350,width: 450,title:'单科成绩详细分析'});
After passing it to the plot.htm page, examCourse Chinese characters appear garbled, because only this one is Chinese, so only this one is garbled, and the others are That's right, after using the encodeURIComponentinfo method on the Internet, it still doesn't work. There are still a lot of garbled percent signs. Can any enthusiastic netizen help me solve it? Urgent, urgent, urgent!

Reply to the discussion (solution)

The % garbled code is the result of url encoding. Just decode it on the server side. There must be a ready-made function

Which function should I use? I checked several online but it still doesn’t work?

%garbled characters are the result of url encoding. Just decode it on the server. There must be a ready-made function. Which function should I use? I checked several online but it still doesn’t work?

Try this

function utf8to16(str) {    var out, i, len, c;    var char2, char3;    out = "";    len = str.length;    i = 0;    while(i < len) {		 c = str.charCodeAt(i++);		 switch(c >> 4)		 { 		   case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:			 out += str.charAt(i-1);			 break;		   case 12: case 13:			 char2 = str.charCodeAt(i++);			 out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));			 break;		   case 14:			 char2 = str.charCodeAt(i++);			 char3 = str.charCodeAt(i++);			 out += String.fromCharCode(((c & 0x0F) << 12) |				((char2 & 0x3F) << 6) |				((char3 & 0x3F) << 0));			 break;		 }    }    return out;}document.writeln(utf8to16(unescape("%E4%BD%A0%E5%A5%BD")));

Try this

function utf8to16(str) {    var out, i, len, c;    var char2, char3;    out = "";    len = str.length;    i = 0;    while(i < len) {		 c = str.charCodeAt(i++);		 switch(c >> 4)		 { 		   case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:			 out += str.charAt(i-1);			 break;		   case 12: case 13:			 char2 = str.charCodeAt(i++);			 out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));			 break;		   case 14:			 char2 = str.charCodeAt(i++);			 char3 = str.charCodeAt(i++);			 out += String.fromCharCode(((c & 0x0F) << 12) |				((char2 & 0x3F) << 6) |				((char3 & 0x3F) << 0));			 break;		 }    }    return out;}document.writeln(utf8to16(unescape("%E4%BD%A0%E5%A5%BD")));
I kept looking and trying many methods, and finally using decodeURI miraculously worked. Haha, I’ll give you all the points

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn