PHPには、次のコードがあります。
<?php
echo "€<br>";
echo ord("€") . "<br>";
echo chr(128) . "<br>";
そして、次の出力が得られます。
€
128
�
chr 関数が € 記号を提供できないのはなぜですか? どうすれば€を手に入れることができますか? 私は本当にこれが機能する必要があります。前もって感謝します。
chr
ord
シングルバイト ASCII 文字でのみ動作します。より具体的ord
には、そのパラメーターの最初のバイトのみを調べます。
ユーロ記号は UTF-8: の 3 バイト文字で0xE2 0x82 0xAC
あるため、ord("€")
(UTF-8 記号を使用すると) 226 (0xE2) が返されます。
ISO-8859-1 (latin1) 文字セットにも存在する文字については、 と を使用できますutf8_encode()
がutf8_decode()
、残念ながらそこには € 記号が含まれていないため、utf8_decode('€')
「?」が返されます。また、元に戻すことはできません。
TL;DR: UTF-8 のようなマルチバイト エンコーディングではord
andを使用できませんchr