JavaScript 相当于 PHP 的 chr() 函数



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

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

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

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];
    }
}

最新更新