Jef*_*oel 2 javascript function urlencode
我正在开发一个功能,用户的电子邮件客户端只需打开预先填写的内容(javascript).
问题是我在转换特殊字符时遇到问题,因此它们被正确显示在电子邮件客户端中(由url传递的内容).
我写了一个函数,但在做了一个后console.log()我发现它甚至不会转换字符(可能是因为我试图char用a 代替string).
function url_encode(item)
{
for (i in item)
{
a = item[i]
switch (a)
{
case "À": a='%C0';
break;
case "È": a='%C8';
break;
case "É": a='%C9';
break;
case "Ê": a='%CA';
break;
case "à": a='%E0';
break;
case "è": a='%E8';
break;
case "é": a='%E9';
break;
case "ê": a='%EA';
break;
case "ë": a='%EB';
break;
}
item[i] = a;
console.log(item[i])
}
return item;
}
Run Code Online (Sandbox Code Playgroud)
任何人都找到了成功的方法或有想法(或修复)为什么这不能按预期工作?
编辑:encodeURI函数不支持é和è字符(在法语中使用很多),结果为é和è.
这个可以吗?
var url_encode = function ( url ) {
return url.split( '' ).map(function ( c ) {
return /[ÀÈÉÊàèéêë]/.test( c ) ? '%' + c.charCodeAt( 0 ).toString( 16 ).toUpperCase() : c;
}).join( '' );
};
Run Code Online (Sandbox Code Playgroud)
现场演示: http ://jsfiddle.net/v2He6/
(注意:你需要为IE8 进行polyfill .map().)
例:
url_encode( 'ABCÀDEFè' ) // "ABC%C0DEF%E8"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3614 次 |
| 最近记录: |