JavaScript等同于PHP的chr()函数

ADi*_*ADi -2 javascript php character-encoding

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

$str = '';
for ($i = 0; $i < 256; $i++) {
    $str .= chr($i);
}
Run Code Online (Sandbox Code Playgroud)

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

le_*_*e_m 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()函数,例如,如下所示(未经测试):

function chr(n) {
    if (n < 128) {
        return String.fromCharCode(n);
    } else {
        return "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥?ƒáíóúñѪº¿?¬½¼¡«»?????????????????????????????????????????????????ß????µ??????????±????÷?°?·??²? "[n - 128];
    }
}
Run Code Online (Sandbox Code Playgroud)