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