[JavaScript]一段把客户端的中文字串转换成UTF-8的代码

安晨________

安晨________

2016-01-29 13:14

[JavaScript]一段把客户端的中文字串转换成UTF-8的代码,[JavaScript]一段把客户端的中文字串转换成UTF-8的代码
[JavaScript]一段把客户端的中文字串转换成UTF-8的代码
开发ASP.NET,我经常要在客户端的javascript代码中使用window.location='WebForm1.aspx?Param1=中文字串'来跳转页面,但在跳转之前必须要把中文字串转换成UTF-8的代码,否则如果中文字串中间存在空格之类的字符就会引起问题。
实际上IE 5.5+,Netscape 6+,Mozilla中已经有了转换函数,即encodeURIComponent,但对于低版本的浏览器则需要一下代码。
/* ***************************
** Most of this code was kindly
** provided to me by
** Andrew Clover (and at doxdesk dot com)
** http://and.doxdesk.com/ ;
** in response to my plea in my blog at
** http://worldtimzone.com/blog/date/2002/09/24
** It was unclear whether he created it.
*/
function utf8(wide) {
var c, s;
var enc = "";
var i = 0;
while(i c= wide.charCodeAt(i++);
// handle UTF-16 surrogates
if (c>=0xDC00 && c<0xE000) continue;
if (c>=0xD800 && c<0xDC00) {
if (i>=wide.length) continue;
s= wide.charCodeAt(i++);
if (s<0xDC00 || c>=0xDE00) continue;

c= ((c-0xD800)<<10)+(s-0xDC00)+0x10000;
}
// output value
if (c<0x80) enc += String.fromCharCode(c);
else if (c<0x800) enc += String.fromCharCode(0xC0+(c>>6),0x80+(c&0x3F));
else if (c<0x10000) enc += String.fromCharCode(0xE0+(c>>12),0x80+(c>>6&0x3F),0x80+(c&0x3F));
else enc += String.fromCharCode(0xF0+(c>>18),0x80+(c>>12&0x3F),0x80+(c>>6&0x3F),0x80+(c&0x3F));
}
return enc;
}
var hexchars = "0123456789ABCDEF";
function toHex(n) {
return hexchars.charAt(n>>4)+hexchars.charAt(n & 0xF);
}
var okURIchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-";
function encodeURIComponentNew(s) {
var s = utf8(s);
var c;
var enc = "";
for (var i= 0; i if (okURIchars.indexOf(s.charAt(i))==-1)
enc += "%"+toHex(s.charCodeAt(i));
else
enc += s.charAt(i);
}
return enc;
}
function URLEncode(fld)
{
if (fld == "") return false;
var encodedField = "";
var s = fld;
if (typeof encodeURIComponent == "function")
{
// Use javascript built-in function
// IE 5.5+ and Netscape 6+ and Mozilla
encodedField = encodeURIComponent(s);
}
else
{
// Need to mimic the javascript version // Netscape 4 and IE 4 and IE 5.0 encodedField = encodeURIComponentNew(s); } //alert ("New encoding: " + encodeURIComponentNew(fld) + // "n escape(): " + escape(fld)); return encodedField;}
展开更多 50%)
分享

猜你喜欢

[JavaScript]一段把客户端的中文字串转换成UTF-8的代码

电脑网络
[JavaScript]一段把客户端的中文字串转换成UTF-8的代码

把图片上文字转换成word文字

电脑入门
把图片上文字转换成word文字

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

一段好玩的JavaScript代码

Web开发
一段好玩的JavaScript代码

怎么把图片转换成文字

电脑网络
怎么把图片转换成文字

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

怎么把图片上的文字转换成word

电脑网络
怎么把图片上的文字转换成word

javascript一段创建层的代码

Web开发
javascript一段创建层的代码

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《影之刃》装备物品升级系统详细解析

《影之刃》装备物品升级系统详细解析

PHP开发中文件操作疑难FAQ

PHP开发中文件操作疑难FAQ
下拉加载更多内容 ↓