Thread View: pl.comp.lang.perl
4 messages
4 total messages
Started by washide
Mon, 30 Jan 2012 12:05
odgrzewane utf8 locale
Author: washide
Date: Mon, 30 Jan 2012 12:05
Date: Mon, 30 Jan 2012 12:05
35 lines
1980 bytes
1980 bytes
Jak to działa : ( pewnie było to napisane i przemielone 150 razy ale
nie rozumiem jak zachodzi pewna funkcjonalniość )
założenie : locale
LANG=pl_PL.UTF-8
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="pl_PL.UTF-8"
LC_COLLATE="pl_PL.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_MESSAGES="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_ALL=
W skrypt.perl:
$str="Ścióka";
print "$str\n";
no i w termianalu pokaże polskie znaki poprawnie.
Ale skoro natywne kodowanie jest latin 1 bo is_utf nie jest równe 1
to na podstawie jakiego mechanizmu mam polskie znaki w terminalu?
if ( utf9::is_utf($str)) =! 1 )
{
print "no utf8\n";
}
Re: odgrzewane utf8 locale
Author: Stachu 'Dozzie' K.
Date: Mon, 30 Jan 2012 12:27
Date: Mon, 30 Jan 2012 12:27
38 lines
2247 bytes
2247 bytes
On 2012-01-30, washide <yoawaoy@gmail.com> wrote:
> Jak to działa : ( pewnie było to napisane i przemielone 150 razy ale
> nie rozumiem jak zachodzi pewna funkcjonalniość )
> założenie : locale
>
> LANG=pl_PL.UTF-8
> LC_CTYPE="pl_PL.UTF-8"
[...]
> W skrypt.perl:
>
> $str="Ścióka";
> print "$str\n";
>
> no i w termianalu pokaże polskie znaki poprawnie.
>
> Ale skoro natywne kodowanie jest latin 1 bo is_utf nie jest równe 1
Nieprawda. Perl dzieli skalary (stringi) na dwie kategorie: byte string
i unicode string. O latin1 jest mowa dopiero podczas promocji byte
stringa do unicode stringa.
> to na podstawie jakiego mechanizmu mam polskie znaki w terminalu?
Bo podajesz strumień bajtów. Żadna konwersja się nie odbywa. Jeśli byś
miał plik ze skryptem zapisany w kodowaniu latin2, to byś na terminalu
dostał krzaki.
> if ( utf9::is_utf($str)) =! 1 )
> {
> print "no utf8\n";
> }
Na przyszłość przeklejaj kod zamiast przepisywać, bo to ma dwie
literówki.
--
Secunia non olet.
Stanislaw Klekot
Re: odgrzewane utf8 locale
Author: washide
Date: Mon, 30 Jan 2012 13:44
Date: Mon, 30 Jan 2012 13:44
13 lines
1930 bytes
1930 bytes
> Bo podajesz strumień bajtów. Żadna konwersja się nie odbywa. Jeśli byś > miał plik ze skryptem zapisany w kodowaniu latin2, to byś na terminalu > dostał krzaki. > Dziękuje Ci Stanisławie za odpowiedz. A jak zapisuje dane np ze zmiennej $str do PDF-a używajac PDF::API2 i PDF::Table, to też leci strumieniem bajtów ?. Pytam bo o ile nie krzaczy przy wypisywaniu na STDOUT via print to krzaczy mi przy zapisie do PLIKU PDF. -- AM
Re: odgrzewane utf8 locale
Author: Stachu 'Dozzie' K.
Date: Mon, 30 Jan 2012 13:54
Date: Mon, 30 Jan 2012 13:54
18 lines
1848 bytes
1848 bytes
On 2012-01-30, washide <yoawaoy@gmail.com> wrote: > >> Bo podajesz strumień bajtów. Żadna konwersja się nie odbywa. Jeśli byś >> miał plik ze skryptem zapisany w kodowaniu latin2, to byś na terminalu >> dostał krzaki. >> > Dziękuje Ci Stanisławie za odpowiedz. > > A jak zapisuje dane np ze zmiennej $str do PDF-a używajac > PDF::API2 i PDF::Table, to też leci strumieniem bajtów ?. Nie wiem, nie znam tych modułów. Zależy jak do sprawy podeszli autorzy. Poszukaj w dokumentacji albo zapytaj autorów, ewentualnie zajrzyj do kodu modułów. -- Secunia non olet. Stanislaw Klekot
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