PHP Unicode dizeleri ters olamayacağı bir comment to an answer to this question ima edildi.
As for Unicode, it works in PHP because most apps process it as binary. Yes, PHP is 8-bit clean. Try the equivalent of this in PHP: perl -Mutf8 -e 'print scalar reverse("ほげほげ")' You will get garbage, not "げほげほ". – jrockway
Ve ne yazık ki PHPs unicode desteği atm "eksik" en iyi olduğu doğrudur. Bu olacak hopefully change drastically with PHP6.
PHPs MultiByte functions Eğer unicode ile başa çıkmak için gereken temel işlevselliği sağlamaz, ancak tutarsız ve bir çok fonksiyonu eksikliği yok. Bunlardan biri, bir dize ters bir işlevdir.
Ben tabii bu mümkün olsaydı o zaman anlamaya herhangi başka bir nedenle bu metni geri istedi. Ve ben bu Unicode metni tersine bu muazzam karmaşık görevi gerçekleştirmek için bir işlev yapılmış, böylece PHP6 kadar biraz daha rahatlatacaktır.
Test kodu:
$enc = 'UTF-8';
$text = "ほげほげ";
$defaultEnc = mb_internal_encoding();
echo "Showing results with encoding $defaultEnc.\n\n";
$revNormal = strrev($text);
$revInt = mb_strrev($text);
$revEnc = mb_strrev($text, $enc);
echo "Original text is: $text .\n";
echo "Normal strrev output: " . $revNormal . ".\n";
echo "mb_strrev without encoding output: $revInt.\n";
echo "mb_strrev with encoding $enc output: $revEnc.\n";
if (mb_internal_encoding($enc)) {
echo "\nSetting internal encoding to $enc from $defaultEnc.\n\n";
$revNormal = strrev($text);
$revInt = mb_strrev($text);
$revEnc = mb_strrev($text, $enc);
echo "Original text is: $text .\n";
echo "Normal strrev output: " . $revNormal . ".\n";
echo "mb_strrev without encoding output: $revInt.\n";
echo "mb_strrev with encoding $enc output: $revEnc.\n";
} else {
echo "\nCould not set internal encoding to $enc!\n";
}