Article View: pl.comp.lang.perl
Article #51946Re: "Piekło" kodowania ...
From: Maciej Zielenkieiwcz
Date: Wed, 14 Jul 2010 08:51
Date: Wed, 14 Jul 2010 08:51
52 lines
2621 bytes
2621 bytes
On 2010-07-13 23:43, mrek <marq@iq.pl> wrote:
> Witam wszystkich chcących pomagać w taki czy inny sposób ;-).
>
> Toczę nierówną walkę z fragmentem skryptu, który w założeniu ma zmienić
> kodowanie treści wiadomości pocztowej (tekstu) do CP1250. Tekst ten
> zostanie w dalszej części użyty do przygotowania wydruku, stąd potrzeba
> użycia strony kodowej win.
> Skrypt który próbuję popełnić pracował będzie pod Win.
>
>
> Wysyłam sobie mailem zestaw polskich znaków diakrytycznych duże i małe
> litery w ramach testu.
>
> Odbieram wiadomość za pomocą Net-POP3.
>
> Wyciągam treść wiadomości (tekst) i dostaję go w postaci z RFC czyli
>=CA=D3=A1=A6=A3=AF=AC=C6=D1 =EA=F3=B1=B6=B3=BF=BC=E6=F1
>
> poniżej kawałek skryptu w którym ćwiczę samą konwersję i utknąłem
>
> #!/usr/bin/perl -w
>
> use strict;
> use locale;
> use Encoding;
>
> use Data::Dumper qw(Dumper);
> use Encode qw(find_encoding encode decode from_to); use MIME::QuotedPrint;
>
> $Data::Dumper::Maxdepth = 2;
> $Data::Dumper::Indent = 0;
>
> our $tekst = '=CA=D3=A1=A6=A3=AF=AC=C6=D1 =EA=F3=B1=B6=B3=BF=BC=E6=F1';
>
> our $tekst_zdekodowany = decode_qp($tekst); działanie tej funkcji daje
> zestaw znaków ĘÓˇ??ŁŻ??ĆŃ ęó????łżĽćń przypisania dla strony kodowej
> iso-8859-2 w tym miejscu zamieram bo dalsze linie nic nie zmieniają
>
our $tekst_in_octets = decode("iso-8859-2", $tekst_zdekodowany);
>
print encode("cp1250", $tekst_in_octets);
>
> 1;
> ------------------------
>
> dla fontów windowsowych potrzebne jest CP1250
>
> Czy ktoś ma jakiś pomysł bo ja już straciłem dystans do tego i nie widzę
> może prostego rozwiązania.
Owszem, trzeba zamienić miejscami encode() i decode (patrz wyżej). One
robią to co mają w nazwie ;-).
Technical Details
Message-ID:
<i1jtps$6v8$1@io.staszic.waw.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.staszic.waw.pl!not-for-mailReferences:
<4c3cfa30$0$17099$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.staszic.waw.pl!not-for-mail From: Maciej Zielenkieiwcz <mzielenkiewicz@gmail.com> Newsgroups: pl.comp.lang.perl Subject: Re: "Piekło" kodowania ... Date: Wed, 14 Jul 2010 08:51:08 +0000 (UTC) Organization: XIV LO im. S. Staszica w Warszawie Lines: 52 Message-ID: <i1jtps$6v8$1@io.staszic.waw.pl> References: <4c3cfa30$0$17099$65785112@news.neostrada.pl> NNTP-Posting-Host: io.staszic.waw.pl Mime-Version: 1.0 X-Trace: news.net.icm.edu.pl 1279097703 32009 94.240.45.200 (14 Jul 2010 08:55:03 GMT) X-Complaints-To: usenet@news.net.icm.edu.pl NNTP-Posting-Date: Wed, 14 Jul 2010 08:55:03 +0000 (UTC) User-Agent: slrn/0.9.9p1 (Linux) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit