Hallo
In Java ist es bei ASCII-Zeichen erlaubt, die Zeichen mittels z. B. < oder > zu vergleichen, weil im Hintergrund die ASCII-Zeichen verglichen werden. Doch wie schaut das in PHP und UTF-8 aus?
Ich habe schon etwas herumexperimentiert ... und wurde überrascht.
Interessanterweise kommt überall die richtige Ausgabe, so wie ich es erhofft hatte.
Allerdings hätte ich eigentlich vermutet, dass das gar nicht geht, dass man so gar keine UTF-8-Zeichen vergleichen darf. Ich hätte eigentlich vermutet, dass nur byteweise verglichen wird (immer nur das erste Byte der beiden Zeichen). Dann hätte der dritte var_dump false ausgeben müssen, da die ersten Bytes der beiden Zeichen § und µ gleich sind.
Also darf man das offiziell so machen? Darf man in PHP UTF-8-Zeichen mit < und > vergleichen?
Backgroundinfo: es interessiert mich wegen dem hier: http://www.unistreams.de/vorlesungen...4-kapitel-3-1/ ab Minute 53 (ich kann übrigens alle Vorlesungen dieses Profs empfehlen, der ist gut )
In Java ist es bei ASCII-Zeichen erlaubt, die Zeichen mittels z. B. < oder > zu vergleichen, weil im Hintergrund die ASCII-Zeichen verglichen werden. Doch wie schaut das in PHP und UTF-8 aus?
Ich habe schon etwas herumexperimentiert ... und wurde überrascht.
PHP-Code:
<?php
error_reporting(-1);
mb_internal_encoding('UTF-8');
var_dump('I' < 'Y'); // 49 < 59 => true OK
var_dump('IZ' < 'Y'); // 49, 5a < 59 => true OK
var_dump('§' < 'µ'); // c2a7 < c2b5 => true OK
var_dump('§' > 'µ'); // c2a7 > c2b5 => false OK
?>
Allerdings hätte ich eigentlich vermutet, dass das gar nicht geht, dass man so gar keine UTF-8-Zeichen vergleichen darf. Ich hätte eigentlich vermutet, dass nur byteweise verglichen wird (immer nur das erste Byte der beiden Zeichen). Dann hätte der dritte var_dump false ausgeben müssen, da die ersten Bytes der beiden Zeichen § und µ gleich sind.
Also darf man das offiziell so machen? Darf man in PHP UTF-8-Zeichen mit < und > vergleichen?
Backgroundinfo: es interessiert mich wegen dem hier: http://www.unistreams.de/vorlesungen...4-kapitel-3-1/ ab Minute 53 (ich kann übrigens alle Vorlesungen dieses Profs empfehlen, der ist gut )
Kommentar