如何将以下代码从PHP转换为JavaScript?
$str = '';
for ($i = 0; $i < 256; $i++) {
$str .= chr($i);
}
我知道 JavaScript 中的String.fromCharCode(n)
类似于 PHP 中的chr(n)
,但当 n 大于 127 时,它们似乎返回不同的字符。
将 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];
}
}