AW: [Allegro] UTF-8 zum zweiten

Thomas Berger ThB at Gymel.com
Fr Jul 1 22:50:29 CEST 2005


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hallo Herr Wolf,

> Kennt eigentlich jemand eine Einstellung in den Windows IMEs oder aber
> ein externes Eingabeprogramm (wie Twinbridge usw.) mit dem man die
> HTML-4 Notationen (Herr Eversberg nennt diese HTML 4 Entitäten) wie
> 'Ӓ' oder aber die dezimale Unicodenummer als Output bekommt ?

Die Notation "Ӓ" ist eine "numerische Zeichenreferenz" (Numeric
character Reference, NCR). "&#x04d2" allerdings auch (dasselbe hexa-
dezimal, nicht dezimal). In den Unicode-Tabellen und vom Windows-
Utility charmap wird nur der hexadezimale Wert der Zeichen angegeben,
RTF benoetigt m.W. unbedingt den dezimalen Wert, modernen WWW-Browsern
ist beides recht.

Ihre Frage ist so aber nicht beantwortbar, weil Sie nicht verraten,
was der Input ist, zu dem sie den gewuenschten Output benoetigen.

perl -e "print ord(\"\x{04d2}\")"

liefert z.B. das Resultat 1234. Der Aufruf sieht aber kryptisch aus,
weil ich das Zeichen 1234 nicht am CMD-Prompt eingeben konnte, und
daher als \x{04d2} notieren musste, dafuer musste ich den numerischen
Wert schon vorher wissen...

Wenn Sie ein in UTF-8 codiertes Zeichen haben, muessen Sie daraus
die Unicode-Position ausrechnen, die resultierende Zahl ist genau
die, die Sie suchen. Perl macht das ggfls. automatisch fuer Sie,
wenn es weiss, dass es ein UTF-8 codierter String ist:

perl -e "use Encode; $_=decode('utf8', \"\xd3\x92\"); print ord($_)"

bzw.

perl -e "print \"\xd3\x92\""
    | perl -e "binmode(STDIN, 'utf8'); $_ = <>; print ord($_)"


liefert jeweils "1234". In beiden Faellen wird Perl irgendwie
mitgeteilt, dass der String \xd2\x92 als UTF-8 codiert zu
interpretieren ist, dann wird er in die interne Unicode-
Repraesentation umgewandelt und die ueblichen Zeichen- und
String-funktionen wie ord() tun automatisch das richtige.

viele Gruesse
Thomas Berger

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3-nr1 (Windows XP)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD4DBQFCxayVENVh3bB0lwMRAkCGAJ96IBH5eXo7IAfvSFDATSyqt6XlRQCWMhn5
DHvv80ouNflcqbfc5NRniA==
=iZnF
-----END PGP SIGNATURE-----



Mehr Informationen über die Mailingliste Allegro