Kodowanie znaków w Perlu

0

Witajcie,
Założyłem konto na tym portalu bo mam problem, którego od jakiegoś czasu nie potrafię rozwiązać. Napisałem skrypt, który wysyła maile po pojawieniu się wpisu w bazie MySQL. Problem polega na tym, że w mailu nie ma polskich liter tylko są krzaki.
W skypcie wykorzystuję

use utf8

a do wysyłania maila

MIME::Lite

Próbowałem wysyłać maile jako HTML i plain text ale to nie pomagało.
Dziwne jest to, że tytuł maila pobieram z bazy i ten Tytuł wyświetla się z krzakami zamiast polskich liter a później w mailu wyświetlanie jest poprawne. W bazie metoda powrównywanie napisów to utf8_polish_ci.
Z dostępnych modułów mogę używać tylko tych: https://home.pl/files/perl-5.8.6_modules.txt
Macie jakiś pomysł jak to naprawić?

Pozdrawiam,
Maciek

0

Może ktoś na pierwszy rzut oka zgadnie, ja bym proponował żebyś ustalił na którym etapie występuje błąd:

  1. Czy w bazie wpisy które wysyłasz są enkodowane dobrze? W bazie jest wszystko w utf-8? (SET NAMES utf8COLLATEutf8_polish_ci``).
  2. Czy w perlu dane pobrane z bazy są enkodowane poprawnie? Sprawdź czy się dobrze wyświetlają po stronie klienta. Jeśli chcesz być pewny, zapisz je dokładnie tak jak odczytałeś do jakiegoś pliku tekstowego i wyślij tutaj (dlatego tak, żeby zminimalizować liczbę enkodowań po drodze).
  3. Czy w mailu dane są enkodowane poprawnie? Spróbuj wrzucić tutaj oryginał wiadomości (tzn. plaintext z nagłówkami) (w gmailu opcje - show original) - niestety nie wszystkie klienty mają taką opcję. Jeśli nie ma takiej opcji, to może chociaż ctrl+s na stronie z wiadomością i wyślij wynikowy plik .html tutaj (dlatego tak, żeby zminimalizować liczbę enkodowań po drodze).
    Ogólnie krzaki oznaczają że coś po drodze interpretuje tekst enkodowany w A jako tekst enkodowany w B i wychodzą cuda.

Poza tym: nie pisałem w perlu, ale patrząc na dokumentację - jaki encoding ustawiasz przy przesyłaniu?
Wspierane to:

   ------------------------------------------------------------
   7bit              | Only 7-bit text, all lines <1000 characters
   8bit              | 8-bit text, all lines <1000 characters
   quoted-printable  | 8-bit text or long lines (more reliable than "8bit")
   base64            | Largely non-textual data: a GIF, a tar file, etc.

Domyślny to "binary" który nadaje się głownie do ascii

Swoją drogą:

dokumentacja napisał(a)

MIME::Lite is not recommended by its current maintainer. There are a number of alternatives, like Email::MIME or MIME::Entity and Email::Sender, which you should probably use instead. MIME::Lite continues to accrue weird bug reports, and it is not receiving a large amount of refactoring due to the availability of better alternatives. Please consider using something else.

0
  1. W bazie jest wszystko ok.
  2. To muszę jeszcze raz sprawdzić bo robiłem już tyle testów, że nie pamiętam. Jak wrócę z pracy to sprawdzę.
  3. To jest oryginalna wiadomość:
 Delivered-To: override85@gmail.com
Received: by 10.76.20.212 with SMTP id p20csp139326oae;
        Mon, 18 Aug 2014 09:05:12 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20130820;
        h=x-original-authentication-results:delivered-to:message-id
         :content-disposition:content-transfer-encoding:content-type
         :mime-version:date:from:to:subject;
        bh=DDXVUdHnynTXyufGMD8kk391ZTBURskcRcxt9/PYVyA=;
        b=gLxFKqFxjJKpiyFKTeth/XHnQUJYZ9e9NyqJJedjMJhpAgK26bhM1L3SxDQn0PAfsO
         xdACC1GvlKpXnp47tM359W2PzqeCQtqDQYaqxkRy+3ZXu7zGk8M0tC2B4yHtTboympVR
         Dw05MdYSO6qIn6Iu5pDO/6kQkzOM80B8REyx4WWwGds7yAzjpYtYk4xFfG2WGHUZwQdg
         K381OBbucdbUh/FGR0qK+g0ZVJIAsCAJE0PuaNx2BypHDcrqYRGeFSMFlU3oyfq5gQz2
         5lbPM6WnptlFtR+LDeY+VxjzpOFwa87nTIw8BeG3khSBsAd6TJORj8i8SLcKyIJrVPJ3
         fCYg==
X-Original-Authentication-Results: mx.google.com;       spf=neutral (google.com: alert@fdb.com does not designate permitted sender hosts) smtp.mail=alert@fdb.com
X-Received: from mr.google.com ([10.194.158.226])
        by 10.194.158.226 with SMTP id wx2mr4880338wjb.107.1408377912861 (num_hops = 1);
        Mon, 18 Aug 2014 09:05:12 -0700 (PDT)
X-Received: by 10.194.158.226 with SMTP id wx2mr9826865wjb.107.1408377911571;
        Mon, 18 Aug 2014 09:05:11 -0700 (PDT)
X-Forwarded-To: override85@gmail.com
X-Forwarded-For: sm@gmail.com override85@gmail.com
Delivered-To: sm@gmail.com
Received: by 10.194.6.1 with SMTP id w1csp324520wjw;
        Mon, 18 Aug 2014 09:05:11 -0700 (PDT)
X-Received: by 10.180.19.35 with SMTP id b3mr41602158wie.52.1408377910736;
        Mon, 18 Aug 2014 09:05:10 -0700 (PDT)
Return-Path: <alert@fdb.com>
Received: from v088391.home.net.pl (v088391.home.net.pl. [79.96.147.253])
        by mx.google.com with SMTP id o1si17225111wiy.46.2014.08.18.09.05.10
        for <sm@gmail.com>;
        Mon, 18 Aug 2014 09:05:10 -0700 (PDT)
Received-SPF: none (google.com: alert@fdb.com does not designate permitted sender hosts) client-ip=79.96.147.253;
Authentication-Results: mx.google.com;
       spf=neutral (google.com: alert@fdb.com does not designate permitted sender hosts) smtp.mail=alert@fdb.com
Return-Path: <alert@fdb.com>
Received: from  [/usr/run/smtp] (HELO localhost)
 by serwer1438696.home.pl [79.96.147.253] with SMTP (IdeaSmtpServer v0.80)
 id 75da1ddbffe946e7; Mon, 18 Aug 2014 18:05:10 +0200
Message-ID: <53f22436.3c03f.15d47.5559@v347.home.net.pl>
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="UTF-8"
MIME-Version: 1.0
X-Mailer: MIME::Lite 3.030 (F2.84; T1.38; A2.12; B3.13; Q3.13)
Date: Mon, 18 Aug 2014 18:05:10 +0200
From: alert@fdb.com
To: sm@gmail.com
Subject: Nowy komunikat spĂłĹki ORZEÂŁ BIAÂŁY SPĂÂŁKA AKCYJNA

Nazwa spolki: ORZEŁ BIAŁY SPÓŁKA AKCYJNA
Data i godzina publikacji komunikatu: 2014-08-18 18:01:51
Tytul komunikatu: formularz "rozszerzonego" skonsolidowanego raportu półrocznego
pelna tresc komunikatu:  

1 użytkowników online, w tym zalogowanych: 0, gości: 1