Sven Rautenberg: discouraged characters

Beitrag lesen

Moin!

wenn man sich den Quelltext bspw. dieser Seite ansieht:

http://www.chineseetymology.org/Etymology.aspx?characterInput=%E5%A6%99&submitButton=Analyze+Character

und ganz nach unten scrollt, findet man einige Quadrate.

Ich finde keine Quadrate. Alles, was ich auf der HTML-Seite im Browser sehe, sieht sehr gut aus, die Seite wird als UTF-8 ausgeliefert, und mein Zeichensatz (den ich mir aufgrund von CK's chinesischen Grüßen installiert habe) zeigt alles offenbar korrekt an.

Auch im Quelltext sind alle Zeichen "typisch UTF-8", d.h. da mein Weaverslave kein UTF-8 kennt, werden die Zeichen in ihren "extended ASCII"-Äquivalenten mehrbytig angezeigt.

Diese Quadrate sind "eigentlich" chin. Schriftzeichen. Das Forum hat mir schon von sich aus insofern weitergeholfen, dass es sich dabei um "discouraged characters" handelt.

Inwiefern kommst du zu diesem Schluß? Wenn dein Editor UTF-8 versteht, dein Zeichensatz dafür aber keine Zeichnungsvorschrift hat, kommen eben die Quadrate. Allein aus der Darstellung "Quadrat" kann man nicht auf "discouraged character" schließen, dazu müßte man den Unicode des Zeichens feststellen und in den Unicode-Tabellen nachschlagen.

Wenn ich ein solches Quadrat in Outlook-Express kopiere und als Encoding "Westeuropäisch (ISO)" wähle, mir dann (in Outlook) den Quelltext ansehe, wurden die Quadrate in Unicode umgewandelt.

Das kann ja nun eigentlich komplett gar nicht sein. Was meinst du denn mit "in Unicode gewandelt"? In die numerischen Zeichenreferenzen der Marke 〹? Das ist kein Unicode. Unicode kommt in den Ausprägungen UTF-7, UTF-8, UTF-16 oder UTF-32 daher - und paßt keinesfalls in die Zeichencodierung ISO-8859-1.

Ich möchte aber diese Datenbank über PHP auslesen, d.h. ich nutze dies hier:

$fe = "http://www.chineseetymology.org/Etymology.aspx?characterInput=$e[11]&submitButton=Analyze+Character";
@ $byte = file($fe);

zerlege dann die eingelesene Seite und extrahiere daraus, was ich brauche (das ist vom Betreiber dieses Lexikons auch abgesegnet).

Mache ich das, wird aus den Quadraten - kurz gesagt - Mist, nämlich jeweils zwei Sonderzeichen (è€) und schon wieder so ein Quadrat.

Dann gibst du die Resultatseite nicht als UTF-8 aus.

Jetzt kommt auch schon die Frage:

Ist es denn möglich, das irgendwie zu vermeiden? Und sei es nur so, dass diese beknackten Quadrate unverändert erhalten bleiben? Dann könnte ich sie ja in Outlook schnell umwandeln. Sonst müsste ich Seite für Seite in Outlook kopieren und so weiter..

Weiß jemand Rat?

Lies dich in die Verwendung von UTF-8 bzw. Unicode allgemein ein. Verwende durchgehend UTF-8 - damit kannst du, auch wenn deine Editoren, Skriptsprachen und Datenbanken allesamt unfähig sind, UTF-8 zu verstehen, zumindest die Strings einlesen, speichern und wieder ausgeben. Selbst die Verarbeitung ist in gewissen Grenzen mit PHP möglich, bedeutet aber tatsächlich einen gewissen Mehraufwand (beispielsweise, wenn es darum geht, einen Text nach X Zeichen zu umbrechen).

Für weitergehende Informationen und Hilfe werden aber mehr Details benötigt.

- Sven Rautenberg

--
My sssignature, my preciousssss!