Brauche hilfe mit unicode?
keikei
- perl
Hi,
bin gerade dabei mich in Perl einzuarbeiten und bin deshalb nicht gerade bewandert wie das alles so geht.
Mein problem ist die codierung und decodierung von internationalen Schriftzeichen, ich grabbe z.B. von einer Webseite per regex bestimmte Textbereiche und schreibe sie in eine Mysql Datenbank. Wie kann ich den text codieren so das ich ihn dann später wieder verwenden kann? Denn momentan bekomme ich anstatt z.B. chinesischer Zeichen diese å¬ç½‘络的声 in meine Datenbank.
Ich kann mir vorstellen, daß ich irgendwas übersehen hab oder man in Perl da vielleicht ein bestimmtes Modul braucht.
Beispiel:
use utf8;
use URI;
use URI::Escape;
use LWP::Simple;
use DBI;
use Encode;
$decodedstring = uri_escape("奇");
print $decodedstring;
gibt dann zurück:
Can't escape \x{5947}, try uri_escape_utf8()
es zeigt mir ja schonmall den code an, aber ich bekomme ihn nicht... und wenn ich es dann mit uri_escape_utf8() mache bekomme ich das zurück:
Undefined subroutine &main::uri_escape_utf8
Es wäre super wenn mir da jemand weiter helfen könnte. Danke
Wie kann ich den text codieren so das ich ihn dann später wieder verwenden kann? Denn momentan bekomme ich anstatt z.B. chinesischer Zeichen diese å¬ç½‘络的声 in meine Datenbank.
Das ist vermutlich UTF-8 in einer nicht-utf8-fähigen oder -eingestellten Datenbank. Du kannst es so weiterverwenden.
es zeigt mir ja schonmall den code an, aber ich bekomme ihn nicht... und wenn ich es dann mit uri_escape_utf8() mache bekomme ich das zurück:
Undefined subroutine &main::uri_escape_utf8
use URI::Escape qw/uri_escape_utf8/;
und dann ganz normal verwenden oder Namensraum angeben: URI::Escape::uri_escape_utf8("件");
Danke werde es mal ausprobieren. Ich verwende eine MySQL DB....
Wie kann ich den text codieren so das ich ihn dann später wieder verwenden kann? Denn momentan bekomme ich anstatt z.B. chinesischer Zeichen diese å¬ç½‘络的声 in meine Datenbank.
Das ist vermutlich UTF-8 in einer nicht-utf8-fähigen oder -eingestellten Datenbank. Du kannst es so weiterverwenden.
es zeigt mir ja schonmall den code an, aber ich bekomme ihn nicht... und wenn ich es dann mit uri_escape_utf8() mache bekomme ich das zurück:
Undefined subroutine &main::uri_escape_utf8
use URI::Escape qw/uri_escape_utf8/;
und dann ganz normal verwenden oder Namensraum angeben:URI::Escape::uri_escape_utf8("件");