Thread mysql query tabellarisch ausgeben
(3 answers)
Opened by thoss51 at 2012-09-30 17:54
das problem hatten wir hier vor kurzem ganz ähnlich schonmal.
sehr wahrscheinlich ist, dass du die daten in utf8 vorliegen, aber nicht dekodiert. dazu müsstest du uns ein paar informationen geben. am besten einen einzelnen string mit umlauten mal folgendermassen ausgeben: an der ausgabe siehst du in der regel, ob der string utf-8kodiert ist oder nicht. hier 2 beispiele: utf8, nicht dekodiert: Code: (dl
)
1 perl -wE' Code: (dl
)
1 perl -wE' du siehst, dass das ä im ersten beispiel als \303\244 hinterlegt ist. damit zählt es als 2 bytes. im 2. beispiel ist es \x{e4} und wird als 1 character gezählt. siehe auch http://perlgeek.de/de/artikel/charsets-unicode edit: in mysql kann man in den optionen beim connect die option mysql_enable_utf8 angeben, dann werden die daten automatisch dekodiert, sofern die entsprechenden tabellen/columns richtig deklariert sind. ansonsten musst du das selber mit Encode::decode_utf8() machen. Last edited: 2012-09-30 18:12:21 +0200 (CEST) Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wie frage ich & perlintro brian's Leitfaden für jedes Perl-Problem |