dedlfix: Nochmal von vorne...

Beitrag lesen

Hi!

"http://example.com/?q=Компьютер"
http://ru.wikipedia.org/wiki/Компьютер

Beachte bitte, dass du hier zwei verschiedene Stellen hat. In der ersten Zeile hast du die fragliche Zeichenkette im Querystring, in der zweiten im Pfad. Zumindest der Firefox verhält sich da unterschiedlich. Wobei er in dem speziellen Fall beide Male die Zeichen in UTF-8 und anschließend URL-kodiert. Bei ISO-8859-1-Zeichen sieht das jedoch anders aus. Teste lieber alles zweimal, einmal mit kyrillischen oder anderen Nicht-ISO-8859-1-Zeichen und einmal mit ISO-8859-1 (jenseits von ASCII, also Umlaute beispielsweise).

Erweitere also dein Beispiel noch um

case 'Ärger':
    $content = 'Ärger bereiten mir diese Zeichen.';
    break;

Desweiteren solltest du auch noch den HTML-Teil ergänzen um:

<ul>
    <li><a href="?q=Компьютер">Компьютер</a></li>
    <li><a href="?q=ᐙᔅᑲᐦᐄᑲᓐ">ᐙᔅᑲᐦᐄᑲᓐ</a></li>
    <li><a href="?q=Ärger">Ärger</a></li>
  </ul>

Du wirst dann sehen, dass sich nicht nur der FF unterschiedlich verhält, wenn du den Ärger in der Adresszeile eingibst oder wenn du den Link verwendest.

Bei einem in die Adresszeile eingegebenen Wert weiß der Browser nicht, welche Kodierung die Zielseite erwartet. Da kann er nur irgendeiner Voreinstellung seinerseits folgen. Bei einem Link nimmt er die Kodierung, in der die den Link enthaltende Seite gehalten ist.

Lo!