Home > Web Front-end > HTML Tutorial > 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
Release: 2016-06-24 12:25:05
Original
1209 people have browsed it

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:'单科成绩详细分析'});
Copy after login
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")));
Copy after login
Copy after login

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")));
Copy after login
Copy after login
I kept looking and trying many methods, and finally using decodeURI miraculously worked. Haha, I’ll give you all the points
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template