Ich habe ein Problem mit einem String (o'donnell), der über ein Formular (variable) reinkommt und z.B. von \Input::get verarbeitet wird:
PHP-Code:
$string1 = \Input::get('variable');
$string2 = "o'donnell"; // im PHP-Skript (UTF8)
Das Problem: beide Strings sind unterschiedlich! Ich habe beide Strings durch eine Funktion geschickt:
PHP-Code:
function Bytes($str)
{
for ( $pos=0; $pos < strlen($str); $pos ++ ) {
$byte = substr($str, $pos);
echo 'Byte ' . $pos . ' von $str hat den Wert ' . ord($byte) . '<br>';
}
}
Ergebnis für $string1:
HTML-Code:
Byte 0 von $str hat den Wert 111
Byte 1 von $str hat den Wert 39
Byte 2 von $str hat den Wert 100
Byte 3 von $str hat den Wert 111
Byte 4 von $str hat den Wert 110
Byte 5 von $str hat den Wert 110
Byte 6 von $str hat den Wert 101
Byte 7 von $str hat den Wert 108
Byte 8 von $str hat den Wert 108
Ergebnis für $string2:
HTML-Code:
Byte 0 von $str hat den Wert 111
Byte 1 von $str hat den Wert 38
Byte 2 von $str hat den Wert 35
Byte 3 von $str hat den Wert 51
Byte 4 von $str hat den Wert 57
Byte 5 von $str hat den Wert 59
Byte 6 von $str hat den Wert 100
Byte 7 von $str hat den Wert 111
Byte 8 von $str hat den Wert 110
Byte 9 von $str hat den Wert 110
Byte 10 von $str hat den Wert 101
Byte 11 von $str hat den Wert 108
Byte 12 von $str hat den Wert 108
D.h. aus dem Hochkommata (39) werden 5 Zeichen: 38, 35, 51, 57 und 59. Mit utf8_encode und utf8_decode habe ich es schon versucht. $string2 bleibt immer unverändert. Was könnte ich noch machen, um $string2 an $string1 anzugleichen?
Lesezeichen