🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #52533

Re: use encoding utf.Czy da się innaczej ?

#52533
From: Tomasz Konojacki
Date: Mon, 17 Jun 2013 19:50
67 lines
2646 bytes
Cześć!

yoawaoy@gmail.com wrote:

> Czy da się zmienić znaki diakrytyczne polskie na duże jeszcze przed encode ?
> Jak bym to teraz chciał zrobić wrzucając uc befor encode to literki pl zostały by małymi.

Da się. Problem tkwi w tym, że Perl nie wie jakie jest kodowanie pliku
ze skryptem (traktuje go jako strumień bajtów, a nie tekst w UTF-8).
Musisz mu powiedzieć, że jest inaczej, dodając na początku tego skryptu
następującą dyrektywę:

  use utf8;

Gdy tej dyrektywy nie ma, ta linia:

   $line =~ /(POŁOŻNICTWO)/ig;

jest źle interpretowana, ponieważ zawiera znaki spoza ASCII które są
interpretowane jako jakieś pozbawione sensu bajty, a nie, tak jak
powinny, jako UTF-8.

$rt=encode("utf-8",$upline);

To właśnie powoduje, że $rt też zawiera strumień bajtów, pozbawiony
flagi UTF-8 i dlatego wtedy to "działa".

Pzdr,
Tomasz

PS. Dobrym zwyczajem jest nieużywanie fileglobowych uchwytów plików.
Czyli zamiast:

open(DS,"wydaw file.txt");

daj:

open(my $ds, "wydaw file.txt");

Podstawowym problemem z tymi pierwszym uchwytem jest to, że jest on
zawsze w globalnym zakresie, z czego mogą wyniknąć różne, dziwne błędy,
na przykład:

sub open_handle {
    open (A, '>', 'lol.txt');
}

open_handle;
print A "test";

To nie wyświetli błędu mimo iż wydawałoby się, że A jest lokalne tylko
dla funkcji open_handle. Następujący kod już wywoła błąd:

sub open_handle {
    open (my $a, '>', 'lol.txt');
}

open_handle;
print $a "test";

PS2. strict i warnings nie bolą :)



-- 
"Lisp has all the visual appeal of oatmeal with fingernail clippings
mixed in." - Larry Wall
Technical Details
Message-ID: <kpnpta$iv$1@mx1.internetia.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.supermedia.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!not-for-mail
References: <de5939b5-79f9-4e47-a83c-a05cac7f867b@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.supermedia.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!not-for-mail
From: Tomasz Konojacki <me@xenu.tk>
Newsgroups: pl.comp.lang.perl
Subject: Re: use encoding utf.Czy da się innaczej ?
Date: Mon, 17 Jun 2013 21:50:44 +0200
Organization: Netia S.A.
Lines: 67
Message-ID: <kpnpta$iv$1@mx1.internetia.pl>
References: <de5939b5-79f9-4e47-a83c-a05cac7f867b@googlegroups.com>
NNTP-Posting-Host: 178-37-225-215.adsl.inetia.pl
Mime-Version: 1.0
X-Trace: mx1.internetia.pl 1371499243 607 178.37.225.215 (17 Jun 2013 20:00:43 GMT)
X-Complaints-To: abuse@inetia.pl
NNTP-Posting-Date: Mon, 17 Jun 2013 20:00:43 +0000 (UTC)
X-Tech-Contact: usenet@internetia.pl
User-Agent: Noworyta News Reader/2.9
X-Server-Info: http://www.internetia.pl/
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit