2012-05-23 31 views
0

Oracle 11g。 PL/SQL。 Oracle使用AL32UTF8。如何在發送電子郵件時保留我的UTF8主題?

LastName 
-------- 
Manaña 

Oracle中的統一碼值爲(00F1),ascii值爲(0241)。當我通過電子郵件發送此值時。這封電子郵件裏寫着'manan?a'。 HEX的電子郵件值是(3F)。

問題:當我通過電子郵件發送電子郵件時,如何保留「ñ」?

這裏的選擇轉儲:

select dump(last_name) => [Typ=1 Len=7: 77,97,110,97,195,177,97] 

當我發送電子郵件,我稱之爲package.mail 下面是摘錄

last_name := 'Manaña' 
packagename.mail(recipient ==>'[email protected]', 
        subject ==>'Email Subject', 
        message ==>last_name); 

PROCEDURE mail(sender  IN VARCHAR2 default '[email protected]', 
    recipients IN VARCHAR2, 
    subject IN VARCHAR2, 
    message IN VARCHAR2) IS 
    conn utl_smtp.connection; 
    userid varchar2(256); 
    globalname varchar2(256); 
    BEGIN  
    conn := begin_mail(sender, recipients, subject); 
    select global_name into globalname from global_name; 
    select user into userid from dual; 
    write_text(conn, message); 
    end_mail(conn); 
    END; 

下面是package.write_text片斷

PROCEDURE write_text(conn IN OUT NOCOPY utl_smtp.connection, 
         message IN VARCHAR2) IS 
    BEGIN 
    utl_smtp.write_data(conn, message); 
    END; 
+0

什麼'從你的_選擇轉儲(lastName)其中<<謂詞返回此行>>返回?你如何發送電子郵件? 'UTL_MAIL'? 'UTL_SMTP'?還有別的嗎?你能告訴我們發送你的電子郵件的代碼(特別是你指定編碼的部分)嗎? –

+3

西班牙語單詞是mañana( - : – tripleee

+0

你能發佈'write_text'程序嗎? –

回答

2

郵件基本上是7位。要發送除7位text/plain之外的其他內容,請使用MIME進行封裝和編碼。在你的情況下,這可能足以說明Content-Type: text/plain; charset="utf-8"Content-Transfer-Encoding: quoted-printable。然後,如果您需要對您的文本進行QP編碼,你的語言可能有一個庫。 (這不難推出自己的,但它通常是一個壞主意。)

相關問題