JavaScript相当于PHP的chr()函数

时间:2016-05-23 16:23:29

标签: javascript php character-encoding

如何将以下代码从PHP转换为JavaScript?

$str = '';
for ($i = 0; $i < 256; $i++) {
    $str .= chr($i);
}

我知道JavaScript中的String.fromCharCode(n)类似于PHP中的chr(n),但是当n大于127时,它们似乎会返回不同的字符。

1 个答案:

答案 0 :(得分:5)

PHP的chr()函数将来自0..127的输入解释为ascii值,并将128..255的输入解释为IBM代码页437(CP437,专有扩展的ascii)值。这是PHP使用的完整ASCII表:http://www.asciitable.com/

JavaScript的String.fromCharCode(i)方法将输入解释为UTF-8值,类似于ascii(从0..127开始),但不是IBM CP437扩展ascii(从128..255开始)。

您可以尝试在JavaScript中重新创建PHP的chr()函数,例如: G。如下(未经测试):

function chr(n) {
    if (n < 128) {
        return String.fromCharCode(n);
    } else {
        return "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "[n - 128];
    }
}