2016-05-23 98 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]; 
    } 
}