ucs2 <=> utf8

之前日志里的的 xss,csrf 有利用ucs-2进行安全攻击的说明。 有时候需要对其进行utf-8的转换。

Ps: gbk编码转unicode需要查表

一般会有流程

gbk => unicode(ucs-2) => utf-8

pass gbk流程

ucs-2utf-8 可以如下实现:

function toUtf8(code) {
    var iByte = 0;
    var i = 0;
    result = "";
    while (code > 0x7f) {
        iByte = code % 0x40;
        code = (code - iByte) / 0x40;
        result = "%" + (iByte | 0x80).toString(16).toUpperCase() + result;
        i++;
    }
    prefix = [0x0, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc];
    if (i > prefix.length) {
        i = 5;
    }
    result = "" + (code | prefix[i]).toString(16).toUpperCase() + result;
    return result;
}

获取unicode则可以如

'adea'.charCodeAt(index).toString(16)

或是

escape('汉')

Ps: escape将被 deprecated

最近的文章

calm down Under anxiety

anxiety diary我本身有一点心率不齐(高考体测得)有些很多未补完的事情,一旦即将deadline, 都会本能地有难以遏制地anxiety。而从前不以为意的items也会一起burst出来, 如果是在家的闲余时间,我会将其转为身体运动来暂时性放逐精神,以免思绪乱飞,譬如弹n个小时的钢琴,或是大学时期的大学城内环4km跑步。身体的运动有抚慰精神的效果。如果是在worktime, 则会开始写文档或是日志, 其实也是一部分的身体movements来comfort自己的精神。这两种办法其实...…

继续阅读
更早的文章

ruby DSL

Creating a Ruby DSL归纳笔记借用 Creating a Ruby DSL 这篇文章中的例子,假设我们想写一段 HTML 代码:<html> <body> <div id="container"> <ul class="pretty"> <li class="active">Item 1</li> <li>Item 2</li> ...…

继续阅读