Owen: Gibt es hier Unicode Spezialisten?

Beitrag lesen

Was heißt eine Seite ist im Unicode Format?
Ich dachte immer, dass man folgende Zeichansatzgabe macht:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Das ist nur der zweite Teil. Der Server muss auch noch den passenden HTTP-Header ausliefern, also
 Content-type: text/html;charset=utf-8
Wieso das so ist: http://webstandards.org/learn/askw3c/dec2002.html
Wie genau das geht: http://httpd.apache.org/docs/mod/mod_mime.html#forcetype

und dann sämtlicher Text im Quelltext einer html Seite nur hexwerte enthält.
Z.B. &#2321; etc

Nein! Da hier ein Zeichensatz angegeben ist, nämlich utf-8, können die Zeichen nativ notiert werden, siehe das Beispiel mit dem Hahn auf dem Mist. Die Entitynotation (sei es als benanntes Zeichen, Hex- oder Dez-) ist bloß nützlich, wenn man einen Zeichen notieren will, welchen im angegebenen Zeichensatz nicht nativ vorkommt, z.B. kyrillische Zeichen beim Westeuropäischen Zeichensatz iso-8859-15. utf-8 hat dieses Problem nicht, da es dank Unicode *alle* Zeichen nativ notieren kann. Alles klar?
In nativer Notation für ein griechisches Zeichen: durchschnittlich zwei Bytes. In Dez: durchschnittlich sechs Bytes. In Hex: durchschnittlich acht Bytes. Als benanntes Zeichen: durschnittlich über 5.5 Bytes.

Was versucht uns der Autor dann mit folgender Unicode Seite mitzuteilen?
http://yudit.org/cgi-bin/test.cgi
Die Seite kann ich auf meinem Rechner, gerade alle möglichen Zeichensätze unter Win 2000 installiert habe. Aber was hat da mit Unicode zu tun.

Ich habe alle Fonts von der Downloadversion von IE5.01 (ielpk*.cab) sowie die Fonts mit Unicodeunterstützung Arial Unicode MS sowie Bitstream Cyberbit installiert und sehe in Opera7.5/Win98 fast alles in mäßig bis perfekter Darstellung. Altungarisch ist nicht darstellbar, da die Codepunkte in einem privat deklarierten Bereich liegen, dafür braucht man also einen Spezialfont.
Ein Font hat dann Unicodeunterstützung, wenn er viele Codepunkte jenseits von U+00FF anbietet. Das merkt man meist schon an der schieren Dateigröße.

Wie ist es aber nun, wenn ich einen Produktkatalog aus pdf Dateien erstellen muss.
Es wäre für mich unmöglich all diese griechischen Texte in die hex Werte zu konvertieren.
Wenn ich nun einen Text in einem PDF Dokument markiere und versuche diesen in die mySQL DB zu kopieren konvertiert der die in ASCII Zeichen.
Wie bekomme ich die nun aus dem pdf Dokument heraus?

Dein SQL-Editor saugt. Du musst den Umweg über einen Unicode-fähigen Editor nehmen, ich empfehle hochvorzüglichst Unipad http://unipad.org/ (Freeware, eingeschränkt). Dann kopierst du Inhalte aus dem PDF und fügst sie in Unipad ein. Dann wählst du in Unipads Kontextmenü Kopieren als...->utf-8. Diesen Inhalt schreibst du dann in die Datenbank (evtl. musst du die Datenbank noch auf utf-8 umstellen http://dev.mysql.com/doc/mysql/en/Charset.html), oder hantierst mit HTML direkt im Editor. Die Konvertierung lässt sich auch vielfältig automatisieren, mein Favorit ist Perl.

Ich habe es eben selber mit einem griechischen PDF probiert, geht prima wie beschrieben.