Schrift
[thread]8584[/thread]

Perl auf Windows, problem mit Umlauten / DOS Box

Leser: 1


<< |< 1 2 >| >> 12 Einträge, 2 Seiten
Franz
 2006-12-14 14:19
#72550 #72550
User since
2006-07-12
31 Artikel
BenutzerIn
[default_avatar]
Hallo,
ich habe auf meinem Windows PC ein problem mit Perl und Umlauten.

Wenn ich aus einer DOS-Box Perl starte , print "ö"; eingebe und das mit ^D ausführen lasse wird korrekt ö ausgegeben. Wenn ich nun ein Script schreibe und mit perl test.pl ausführe, so wird das ö als ÷ ausgegeben. Wenn ich das mit beiden Ansätzen in eine Datei schreibe so wird das als ö geschrieben. Wenn ich das über LWP als POST request wohin absende, so wird das in jedem Fall als ÷ gesendet.

Kann mir hier evtl. jemand dazu einen Tipp zur Lösung geben? Es wird scheinbar jedesmal die selbe Perl.exe ausgeführt.

Ich habe das mit XAMPP und Perl und Activeperl probiert.
renee
 2006-12-14 14:29
#72551 #72551
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das liegt daran, dass die DOS-Box eine andere Codierung hat...

Wiki:Artikel

http://www.issociate.de/board....er.html
http://www.perlunity.de/perl/forum/thread_005996.shtml
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Franz
 2006-12-14 17:30
#72552 #72552
User since
2006-07-12
31 Artikel
BenutzerIn
[default_avatar]
Vielen Dank für den Link ins Wiki! In der Ausgabe in der DOS BOX klappt das auch mit dem binmode und der Angabe zur Codepage. Nur mein LWP Post haut noch nicht hin. Die Daten lese ich aus einer Datenbank - dort ist LATIN-1 eingestellt. Ich probiers nun noch mal auf nem Linux-System. Aber im Prinzip wäre ich an einer Lösung auf dem Windows PC interessiert. :-/ Ich finde irgendwie keinen Schlüßel, um in der Frage weiter zu kommen oder ich übersehe ihn einfach. :-(
renee
 2006-12-14 17:37
#72553 #72553
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Zeig mal etwas Code...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Franz
 2006-12-14 18:24
#72554 #72554
User since
2006-07-12
31 Artikel
BenutzerIn
[default_avatar]
*grunz* auf dem Linux System das Selbe..... :-(
ich brauch da wohl n buch für dummis :-/
renee
 2006-12-14 20:39
#72555 #72555
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Scheint eher so, als würden "falsche" Werte in der Datenbank stehen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Franz
 2006-12-15 13:03
#72556 #72556
User since
2006-07-12
31 Artikel
BenutzerIn
[default_avatar]
Also ich war wohl auf dem Holzweg :-(

Und zwar übermittel ich die Daten per LWP::UserAgent post an den Server

my $url_post='http://benutzername:passwort@www.connotea.org/data/add';
my $response = $ua->post($url_post,['uri'=>'http://www.einlink123test.de','title'=>'äöüß','tags'=>'äöüß','description'=>'äöüß','comment'=>'äöüß'],'Referer' =>'');

Auf der Connotea Seite stehen dann irgendwelche Sonderzeichen (schwarze Raute mit Fragezeichen) - copy und paste hier rein, macht das Forum draus:
&�&�&�&�

Auf der Connotea Website kann ich manuell via Form ein Bookmark hinzufügen. DIe Seite ist in UTF-8. Das klappt.

Stelle ich den zeichensatz im Browser um auf ISO-8859-1 und übermittel das ganze dann, dann kommt der selbe murks raus.

Irgendwie scheints das wohl zu sein, eine Lösung erkenne ich nun immer noch nicht. Immerhin ist das Problem nun lokalisiert (bzw. ist das wohl auf meiner Seite und nicht Connotea Seite)\n\n

<!--EDIT|Franz|1166180743-->
GwenDragon
 2006-12-15 13:22
#72557 #72557
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Quote
Stelle ich den zeichensatz im Browser um auf ISO-8859-1 und übermittel das ganze dann, dann kommt der selbe murks raus.
Ist auch nicht sinnvoll, den Browser auf einen Zeichensatz zu zwingen.
Du musst den Zeichensatz verwenden, den dir die Webseite bzw. der Server angibt, ob per Meta-Tag oder HTTP-Header. Der Zeichensatz gilt ja auch für das Formular.

Also erst mit einem HEAD-Request den Content-Type anfragen und dann die Daten richtig kodiert posten. Es kann ja nicht sein, das das Formular-CGI eine andere Kodierung verwendet als die Webseite.\n\n

<!--EDIT|GwenDragon|1166182318-->
Franz
 2006-12-15 14:26
#72558 #72558
User since
2006-07-12
31 Artikel
BenutzerIn
[default_avatar]
Damit wollte ich nur sehen was passiert, klar ist das nicht sinnvoll.

Also ich rufe keine Seiten ab, sondern sende meine Daten per POST dorthin, um sie einzutragen.

Kann ich so den Content-Type meines Post-requests angeben?:

my $h=HTTP::Headers->new();
$h->content_encoding('utf-8');

my $ua = LWP::UserAgent->new();
my $url_post='http://benutzername:passwort@www.connotea.org/data/add';
my $response = $ua->post($url_post,['uri'=>'http://www.einlink123test.de','title'=>'äöüß','tags'=>'äöüß','description'=>'äöüß','comment'=>'äöüß'],'Referer' =>'');

Ergebnis allerdings negativ :-(
nepos
 2006-12-15 17:51
#72559 #72559
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Welches Encoding will denn der Server haben?
Das musst du ihm dann übermitteln.
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2006-12-14 14:19.