Oracle11g。PL/SQL。OracleはAL32UTF8を使用します。
LastName
--------
Manaña
OracleのñのUnicode値は(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 ==>'emailrecipeint@blah.com',
subject ==>'Email Subject',
message ==>last_name);
PROCEDURE mail(sender IN VARCHAR2 default 'non-reply@company.edu',
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;