2016-05-23 137 views
-2

如何将下面的代码从PHP转换为JavaScript?JavaScript的等效PHP的chr()函数

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

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

+0

您的预期输出是什么? – Patrick2607

+0

您需要包含您的输入和输出,以及您遇到的任何错误。 – ssube

+0

你想要做什么? JavaScript根本不使用ASCII,你的字符串可能也不会这样做(我们在2016年!)。 –

回答

3

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