🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
4 messages
4 total messages Started by washide Mon, 30 Jan 2012 12:05
odgrzewane utf8 locale
#52377
Author: washide
Date: Mon, 30 Jan 2012 12:05
35 lines
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
#52378
Author: Stachu 'Dozzie' K.
Date: Mon, 30 Jan 2012 12:27
38 lines
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
#52379
Author: washide
Date: Mon, 30 Jan 2012 13:44
13 lines
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
#52380
Author: Stachu 'Dozzie' K.
Date: Mon, 30 Jan 2012 13:54
18 lines
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