I use a function that transcribes strings into an array of bytes, I have this function in PHP and JavaScript, but both have different behaviors when I play these characters: γ¬ ζ θ Ζ α° δ β¦ ι£ ε ε ε ε ε ε ε εμ Ψ΅ δ
How to make the results the same?
My code is:
function bytesFromWords($string) { $bytes = array(); $j = strlen($string); for($i = 0; $i < $j; $i++) { $char = ord(mb_substr($string, $i, 1)); $bytes[] = $char >> 8; $bytes[] = $char & 0xFF; } return $bytes; } echo bytesFromWords('γ¬ζθΖαδβ¦ι£ ε&Σ‘ΰΉ¨γζ£±μΨ΅δ '); // result: 0,227,0,172,0,129,0,230,0,132,0,131,0,232,0,134,0,152,0,198,0,152,0,225,0,131,0,128,0,228,0,154,0,144,0,226,0,166,0,128,0,233,0,163,0,160,0,229,0,153,0,139,0,38,0,211,0,161,0,224,0,185,0,168,0,227,0,143,0,131,0,230,0,163,0,177,0,236,0,140,0,140,0,216,0,181,0,228,0,140,0,160 function bytesFromWords (string) { var bytes = []; for(var i = 0; i < string.length; i++) { var char = string.charCodeAt(i); bytes.push(char >>> 8); bytes.push(char & 0xFF); } return bytes; } console.log(bytesFromWords('γ¬ζθΖαδβ¦ι£ ε&Σ‘ΰΉ¨γζ£±μΨ΅δ ').toString()); // result: 59,1,97,3,129,152,1,152,16,192,70,144,41,128,152,224,86,75,0,38,4,225,14,104,51,195,104,241,195,12,6,53,67,32