用javascript解码转义的西里尔字母
Decode escaped Cyrillic with javascript
问题如下:因为我正在使用的后端使用破碎的pylons 0.9.7版本,它在保存时自动转escape cookie(我使用pylons并有响应问题)。set_cookie。我不能更新它到一个固定的rev)西里尔url保存在cookie从请求变成奇怪的转义字符串。例如:
ооо-фронталь.рф
将被保存为
'320'276'320'276'320'276-'321'204'321'200'320'276'320'275'321'202'320'260'320'273'321'214.'321'200'321'204`
我试着在保存之前用urllib引用它,但后来我留下了:
'%5C320%5C276%5C320%5C276%5C320%5C276-%5C321%5C204%5C321%5C200%5C320%5C276%5C320%5C275%5C321%5C202%5C320%5C260%5C320%5C273%5C321%5C214.%5C321%5C200%5C321%5C204'
并不能让事情变得更好。有什么方法来解码这与javascript ?encode/decodeURI在这种情况下不起作用:/
它们是UTF-8八进制转义,因此很难在JavaScript中转换。
他是一种可能有效的方法,尽管它相当糟糕:
由于十六进制'320'276
是0xD0 0xBE
,所以URL编码是%D0%BE
,所以:
var s = "''320''276''320''276''320''276-''321''204''321''200''320''276''320''275''321''202''320''260''320''273''321''214.''321''200''321''204"
var r = s.replace(/''('d{3})?/g, function(a, b) {
//octal to hex
return "%" + parseInt(b, 8).toString(16);
});
alert( decodeURIComponent(r) );
相关文章:
- 有没有一种方法可以在没有文档或jQuery的情况下使用javascript解码html实体
- php中javascript解码中的base64编码
- 用Ruby/Javascript解码带引号的可打印字符串
- JavaScript-解码URI以呈现为HTML
- JavaScript:解码 PHP json_encode响应
- 简单的Javascript解码
- 使用javascript解码unicode字符串,不使用JSON
- 用PHP从Javascript解码Json字符串
- 如何使用JavaScript解码JPEG2000位数组图像
- 用javascript解码url字符串
- 使用javascript解码url中的重音字母
- 使用JavaScript解码图像
- 用JavaScript解码字符串中的混合ASCII代码
- 使用JavaScript解码PKCS12文件并从中获得加密私钥的最佳方法
- Javascript解码JSON字符串,其中包含一个编码字符串
- 使用Javascript解码PHP编码的JSON对象
- 用javascript解码转义的西里尔字母
- 如何使用AngularJS或JavaScript解码URL参数
- 如何用javascript解码URI
- 用Javascript解码Google Oauth2访问令牌