Thread View: pl.comp.lang.perl
6 messages
6 total messages
Started by Sierp
Mon, 09 Nov 2009 21:24
WWW i pliterki
Author: Sierp
Date: Mon, 09 Nov 2009 21:24
Date: Mon, 09 Nov 2009 21:24
33 lines
1780 bytes
1780 bytes
Witam,
mam... no glupi problem powiem szczerze
Prosty skrypt CGI, ktory przez formularz pobiera dane a potem ja
jakośtam obrabia.
w uproszczeniu skrypt wyglada tak
use CGI qw(:standard);
print header(-charset=>"iso-8859-2");
print start_html();
if (jezeli_skrypt_uruchomiony_pierwszy_raz) {
print start_multipart_form(-method=>"POST",
-id=>"Form"),
"costam ".textarea(-name=>costam, -default=>'', -rows=>5,
-columns=>50),submit(-value=>'submit'),end_multipart_form();
} else {
$zmienna=param('costam');
print $zmienna;
}
Oczywiscie warunek "if" jest sensowny, jest to czesc skryptu, ale z
PLiterkami nie moge sobie poradzic...
Jezeli wpisze jakąś pliterkę w textarea, to na następnej stronie
wyswietli sie tekst bez polskich liter...
Dlaczego?
Szukalem w FAQ pl.comp.lang.perl (jest rozdzial o polskich znakach,
probowalem roznych rzeczy, bez skutku), googlalem, ale jakos nie moge
dojsc co zle robie
Sierp
Re: WWW i pliterki
Author: Szymon Sokół
Date: Mon, 09 Nov 2009 22:01
Date: Mon, 09 Nov 2009 22:01
20 lines
1903 bytes
1903 bytes
On Mon, 09 Nov 2009 22:24:47 +0100, Sierp wrote: > Jezeli wpisze jakąś pliterkę w textarea, to na następnej stronie > wyswietli sie tekst bez polskich liter... > Dlaczego? U mnie dokładnie taki kod (z warunkiem maksymalnie prostym, tj. !param()) działa poprawnie, ergo problem leży *poza* kodem, który pokazałeś. Nb. ja bym jednak zamiast use CGI qw(:standard); dał use CGI qw(:standard -no_xhtml); w przeciwnym razie będziesz miał nieco zamieszania w nagłówkach (włącz sobie podgląd źródła tego, co dostajesz z serwera...) -- Szymon Sokół (SS316-RIPE) -- Network Manager B Computer Center, AGH - University of Science and Technology, Cracow, Poland O http://home.agh.edu.pl/szymon/ PGP key id: RSA: 0x2ABE016B, DSS: 0xF9289982 F Free speech includes the right not to listen, if not interested -- Heinlein H
Re: WWW i pliterki
Author: Sierp
Date: Mon, 09 Nov 2009 23:03
Date: Mon, 09 Nov 2009 23:03
30 lines
1883 bytes
1883 bytes
Szymon Sokół pisze: >> Jezeli wpisze jakąś pliterkę w textarea, to na następnej stronie >> wyswietli sie tekst bez polskich liter... >> Dlaczego? > > U mnie dokładnie taki kod (z warunkiem maksymalnie prostym, tj. !param()) > działa poprawnie, ergo problem leży *poza* kodem, który pokazałeś. znalazlem blad, choc sleczalem nad tym chwile... w międzyczasie ze zmiennych "wywalam" niedozwolone znaki (taka prosta walidacja) i takze wycinalem polskie literki... ehh... Natomiast teraz mam dwa inne problemy ;-) Po pierwsze - jak wyciac wszystko poza pliterkami, czyli jak uzyc takiego "wycinacza" niechcianych znakow $costam =~ s/[^A-Za-z0-9\ ]*//g; ktory nie wytnie PLiterek? (wpisanie ąęćł etc nie dziala - przypuszczam, ze mam inne kodowanie na konsoli ssh niz iso-8859-2) Oraz jak w pliku zrodlowym (edytowany przez vi na linuksie) wpisac tekst aby wyswietlil sie poprawnie, czyli aby takie cos zadzialalo print "tęstuję"; Jak ktos wie, to fajnie jak napisze - ja zaprzęgam google do szukania Sierp
Re: WWW i pliterki
Author: Szymon Sokół
Date: Mon, 09 Nov 2009 23:30
Date: Mon, 09 Nov 2009 23:30
20 lines
2120 bytes
2120 bytes
On Tue, 10 Nov 2009 00:03:53 +0100, Sierp wrote: > Po pierwsze - jak wyciac wszystko poza pliterkami, czyli jak uzyc > takiego "wycinacza" niechcianych znakow > > $costam =~ s/[^A-Za-z0-9\ ]*//g; > > ktory nie wytnie PLiterek? (wpisanie ąęćł etc nie dziala - przypuszczam, > ze mam inne kodowanie na konsoli ssh niz iso-8859-2) No kochany. NIE WIESZ, jakie masz kodowanie na konsoli? To się może dowiedz. I jeśli faktycznie inne, to włącz jakieś przekodowanie. Albo zamiast używać w treści skryptu bezpośrednio znaków, używaj ich kodów (np "ą" = "\xb1"), to na pewno nie zależy od używanego przez terminal kodowania, za to jest cholernie niewygodne i nieczytelne. -- Szymon Sokół (SS316-RIPE) -- Network Manager B Computer Center, AGH - University of Science and Technology, Cracow, Poland O http://home.agh.edu.pl/szymon/ PGP key id: RSA: 0x2ABE016B, DSS: 0xF9289982 F Free speech includes the right not to listen, if not interested -- Heinlein H
Re: WWW i pliterki
Author: Paweł Matejski
Date: Tue, 10 Nov 2009 00:40
Date: Tue, 10 Nov 2009 00:40
49 lines
2670 bytes
2670 bytes
Sierp wrote: > Szymon Sokół pisze: >>> Jezeli wpisze jakąś pliterkę w textarea, to na następnej stronie >>> wyswietli sie tekst bez polskich liter... >>> Dlaczego? >> >> U mnie dokładnie taki kod (z warunkiem maksymalnie prostym, tj. !param()) >> działa poprawnie, ergo problem leży *poza* kodem, który pokazałeś. > > znalazlem blad, choc sleczalem nad tym chwile... > w międzyczasie ze zmiennych "wywalam" niedozwolone znaki (taka prosta > walidacja) i takze wycinalem polskie literki... ehh... > > Natomiast teraz mam dwa inne problemy ;-) > > Po pierwsze - jak wyciac wszystko poza pliterkami, czyli jak uzyc > takiego "wycinacza" niechcianych znakow > > $costam =~ s/[^A-Za-z0-9\ ]*//g; > > ktory nie wytnie PLiterek? (wpisanie ąęćł etc nie dziala - przypuszczam, > ze mam inne kodowanie na konsoli ssh niz iso-8859-2) use locale; $costam =~ s/[^[:alpha:]\ ]*//g; albo $costam =~ s/[^\w\d\ ]*//g; > Oraz jak w pliku zrodlowym (edytowany przez vi na linuksie) wpisac tekst > aby wyswietlil sie poprawnie, czyli aby takie cos zadzialalo > > print "tęstuję"; Najprościej ustawić kodowanie konsoli na iso-8859-2. Możesz też spróbować powiedzieć perlow, jakiego kodowania używasz w skrypcie, a jakie ma dawać na STDOUT (zakładam, że html CGI wyrzuca na stdout): use encodig 'twoje_kodowanie_na_konsoli', STDOUT=>'iso-8859-2'; Żródło: perldoc encoding Jeśli chcesz vima do tego zaprząc, to możesz spróbować: :set fileencoding=iso-8859-2 P.S. Żadnego z tych sposobów w pełni nie stosowałem, ale natknąłem się na te informacje przy okazji rozwiązywania swoich problemów, może Ci coś zadziała. -- P.M.
Re: WWW i pliterki
Author: Szymon Sokół
Date: Tue, 10 Nov 2009 16:56
Date: Tue, 10 Nov 2009 16:56
27 lines
2234 bytes
2234 bytes
On Tue, 10 Nov 2009 01:40:13 +0100, Paweł Matejski wrote: > Sierp wrote: [----] >> Po pierwsze - jak wyciac wszystko poza pliterkami, czyli jak uzyc >> takiego "wycinacza" niechcianych znakow >> >> $costam =~ s/[^A-Za-z0-9\ ]*//g; >> >> ktory nie wytnie PLiterek? (wpisanie ąęćł etc nie dziala - przypuszczam, >> ze mam inne kodowanie na konsoli ssh niz iso-8859-2) > > use locale; > $costam =~ s/[^[:alpha:]\ ]*//g; > albo > $costam =~ s/[^\w\d\ ]*//g; To nie jest rozwiązanie postawionego problemu. Hint: ĽŠŤŽľšşťžŔÁÂĂÄĹÇČÉËĚÍÎĎĐŇÔŐÖŘŮÚŰÜÝŢßŕáâăäĺçčëěíîďđňôőöřůúűüýţ - "wszystko poza pliterkami" Oczywiście, można się zastanawiać, czy pytający na pewno miał na myśli to, co napisał... -- Szymon Sokół (SS316-RIPE) -- Network Manager B Computer Center, AGH - University of Science and Technology, Cracow, Poland O http://home.agh.edu.pl/szymon/ PGP key id: RSA: 0x2ABE016B, DSS: 0xF9289982 F Free speech includes the right not to listen, if not interested -- Heinlein H
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads