Raketenwilli: "ä", PHP, UTF-8

Beitrag lesen

PS. echo strlen('ä'); // 2 😆

Nicht wenn Du das mit dem selig gesprochenem HTML-Editor und also mit einer ISO-Kodierung speicherst… Aber zeigen wir doch etwas mehr:

<?php
echo 'mb_internal_encoding( \'UTF-8\' );' . PHP_EOL;
mb_internal_encoding( 'UTF-8' );

$string = 'ä';

echo '                      $string = \'' . $string . '\'' .  PHP_EOL;
echo "                 strlen( '$string' ) : " . strlen( $string ) . PHP_EOL;
echo "              mb_strlen( '$string' ) : " . mb_strlen( $string ) . PHP_EOL;
echo "iconv_strlen( '$string' , 'UTF-8')   : " . iconv_strlen( $string ) . PHP_EOL;
echo '                    $string[0] : ' . $string[0] . PHP_EOL;
echo '$arr = mb_split( \'\', \'' . $string . '\', 1 )'  . PHP_EOL;
$arr = mb_split( '', $string, 1 );
echo '                       $arr[0] : ' . $arr[0] . PHP_EOL;

/tmp > php test.php 
mb_internal_encoding( 'UTF-8' );
                      $string = 'ä'
                 strlen( 'ä' ) : 2
              mb_strlen( 'ä' ) : 1
iconv_strlen( 'ä' , 'UTF-8')   : 1
                    $string[0] : �
$arr = mb_split( '', 'ä', 1 )
                       $arr[0] : ä