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

2016-01-29 13:14 3 1 收藏

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

【 tulaoshi.com - ASP.NET 】

[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;}

来源:https://www.tulaoshi.com/n/20160129/1489404.html

延伸阅读
怎么把excel转换成pdf 方法1: 很多用户都知道,excel2007及以后的版本,可以直接将excel文件另存为 PDF格式。步骤如下:打开需要转换的Excel文件,并调整好格式,然后点击左上角的office图标,打开图标后选择另存为,并点击PDF或 XPS,在弹出的对话框中,点击右下角的选项,在弹出的对话框中,点击选项按钮选择好我们需要的内容,...
标签: 电脑入门
如何把word文档转换成图片 将Word文件的全部内容或部分文字转化为图形形式具体操作方法如下: (1)打开需转化为图形格式的文件,单击插入→对象命令,在对象类型下拉列表中选择 MicrosoftWord文件项,单击确定按钮。 (2)Word系统会自动新建一个文件,在该文件中输入需要转换为图形的文字(可以通过复制→粘贴操作来实现),...
打开软件 打开这款软件之后,可以清楚看到界面上的主要功能(直接下载解压安装就可以使用啦),有Flash转GIF、Flash转换AVI、Flash转换JPG、AVI转换GIF等。 打开Flash文件 选择需要操作的功能选项“Flash转换GIF”也就是“SWF转换GIF”,在右边上可以看到“打开Flash文件”按钮,打开之后就可以选好要转换的SWF文件。 添加swf...
怎样把jpg转换成word 怎样把jpg转换成word在找寻资料的时候,我们经常会发现一些Word文件中的文字资料是以图片的形式插在Word中的,如果我们需要这些资料,而又希望对这些图片内容进行编辑的话,那就只能想办法将图片文字提取出来了。可是,Word 中图片转换成文字的方法有哪些呢? 要想将Word中图片文字提取出来,必须靠专业的图片文...
怎么用图片文字提取大师把图片转换成文字   捷速OCR文字识别软件是一款非常好用的ocr图像识别软件。软件功能强大,将你上传的图片转换成WORD、图片转换成文字等可编辑文字,一键转换,OCR识别在线超快!支持JPG、PNG、GIF、BMP、DOC等图片格式,欢迎下载使用 小编由于之前自己也碰到过这种情况,于是自己就在网上查找相关的资料,而...

经验教程

791

收藏

37
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部