Portál AbcLinuxu, 6. května 2025 11:29

Dotaz: Perl - utf - cestine

10.1.2017 13:21 Stem
Perl - utf - cestine
Přečteno: 472×
Odpovědět | Admin
Ahoj, marne se snazim rozjet cestinu v Perlu (fakt nevidim, v cem je prolem)
#!/usr/bin/perl

use utf8;
use locale;

binmode STDIN, ":utf8";
binmode STDOUT, ":utf8";


print "Příliš žluťoučký kůň úpěl ďábelské ódy";
vytiskne neco jako: PříliÅ¡ ÅŸluÅ¥ouÄ srkÜ kůŠúpÄ ÄÃ¡belské ódy,

takze nic moc.

locele:
LANG=en_GB.UTF-8
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES=en_GB.UTF-8
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=/code>
locale -a:
C
cs_CZ.utf8
en_GB.utf8
POSIX
[xx@arch test]$ echo "Príliš žlutoucký kun úpel dábelské ódy" Príliš žlutoucký kun úpel dábelské ódy - to zase neni tak spatne

jinak pouzivam archlinux, nejaka rada?

Dekuju


Řešení dotazu:


Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.1.2017 14:05 tom
Rozbalit Rozbalit vše Re: Perl - utf - cestine
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ten skript samotnej je ulozenej v UTF-8, vypise ho cat dobre?
10.1.2017 14:37 Stem
Rozbalit Rozbalit vše Re: Perl - utf - cestine
Ja bych dal rudu do ohne za to ze je ulozeny v utf8:
file -i test.pl 
test.pl: text/x-perl; charset=utf-8
i Geany mam nastaveny na utf8.

nicmene cat vytiskne spatny kodovani.

wamba avatar 10.1.2017 15:02 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Perl - utf - cestine
Já bych si tipnul, že jste tu frázi někde okopíroval, kde nebyla utf-8, ale v ISO-8859-2. Protože když ten program zkopíruji tak mě to dělá totéž, ale následující funguje
use 5.010;
use utf8;

binmode STDOUT, ':encoding(UTF-8)';
say 'Příliš';
This would have been so hard to fix when you don't know that there is in fact an easy fix.
10.1.2017 15:49 Stem
Rozbalit Rozbalit vše Re: Perl - utf - cestine
jsem si myslel, ze v jednom souboru muze byt jen jedno kodovani a kdyz neni, zmrsi se to hned pri ulozeni. Ale budiz, treba ne.

Ale mate pravdu, text jsem zkopiroval. Ale i kdyz ho napisu rucne, dosahnu stejne spatneho vysledku:
#!/usr/bin/perl

use utf8;
use locale;

binmode STDIN, ":utf8";
binmode STDOUT, ":utf8";

my $string1 = "příliš";   # napsano rucne
my $string2 = "Příliš žluťoučký kůň úpěl ďábelské ódy";  # copy pase....

print "string1: ".$string1." - ".utf8::is_utf8($string1)."\n\n";
print "string2: ".$string2." - ".utf8::is_utf8($string1)."\n\n";

perl test.pl 
string1: příliš - 1
                            kÜ kůŠúpÄ ÄÃ¡belské ódy - 1
string2: PříliÅ¡ ÅŸluÅ¥ouÄ
mam relativne novou instalaci archu, takze jsem mohl neco udelat spatne uz pri instalaci. Ale nevim co.

10.1.2017 15:53 Stem
Rozbalit Rozbalit vše Re: Perl - utf - cestine
Pokud zkusim vas ukazkovej kod, dopadne to stejne spatne.

Vazne si rikam, ze to muze byt vic system nez Perl. Bezne mam prostredi nastaveny na anglictinu, takze bych to jindy asi ani nepoznal.
10.1.2017 15:58 krocan
Rozbalit Rozbalit vše Re: Perl - utf - cestine
A jen zopakuji otazku - co ten skript, vypise ho cat dobre?
10.1.2017 16:10 Stem
Rozbalit Rozbalit vše Re: Perl - utf - cestine
jednoznacne ne
 $ cat test.pl 
#!/usr/bin/perl

use utf8;
use locale;

binmode STDIN, ":utf8";
binmode STDOUT, ":utf8";

my $string1 = "příliÅ¡";   # napkÜ kůŠúpÄ ÄÃ¡belské ódy";  # copy pase....
my $string2 = "PříliÅ¡ ÅŸluÅ¥ouÄ
print "string1: ".$string1." - ".utf8::is_utf8($string1)."\n\n";
print "string2: ".$string2." - ".utf8::is_utf8($string1)."\n\n";
10.1.2017 16:14 Stem
Rozbalit Rozbalit vše Re: Perl - utf - cestine
Aaa, uz je to doma. Spatny kodovani v terminalu:(

Kdo by to cekal. Nastavil jsem terminal na UTF8 a svet je zase v poradku.

Dekuji za pomoc.
10.1.2017 16:16 Marek Sulik
Rozbalit Rozbalit vše Re: Perl - utf - cestine
Odpovědět | | Sbalit | Link | Blokovat | Admin
No ja som skusal, ten skript spustit v UXTERM, XTERM a aj RXVT, a vsetky znaky mi zobrazuje spravne. a v ".Xdefaults" mam take nastavene fonty:

XTerm*font: -*-*-medium-r-*-*-15-*-*-*-*-*-iso10646-*

XTerm*boldfont: -*-terminus-medium-r-bold-*-15-*-*-*-*-*-*

UXTerm*font: -*-*-medium-r-*-*-15-*-*-*-*-*-iso10646-*

UXTerm*boldFont: -*-terminus-bold-r-normal-*-15-*-*-*-*-*-iso10646-*

Rxvt*font: -*-fixed-medium-r-*-*-15-*-*-*-*-*-iso10646-*

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.