3

我尝试使用 utl_smtp 和 Oracle 发送一封电子邮件,其中包括挪威字符 (å æ ø)。否则字符会在数据库中正确存储和显示,但在电子邮件中显示为问号。

我的数据库字符集是 WE8MSWIN1252

我在电子邮件中尝试了不同的 Content-Type mime 标头,包括“text/plain; charset="win-1252"',这似乎没有帮助。

4

1 回答 1

4

默认情况下 smtp 是 7bit ascii(有点老技术 :)。您必须使用UTL_SMTP.write_data并来自文档

使用发送的文本 (VARCHAR2) 数据在发送 WRITE_DATA前转换为 US7ASCII。如果文本包含多字节字符,则文本中无法转换为 US7ASCII 的每个多字节字符将替换为“?” 特点。如果使用 EHLO 子程序与 SMTP 服务器协商 8BITMIME 扩展名,则可以通过首先使用UTL_RAW包将文本转换为 RAW 来发送多字节 VARCHAR2 数据,然后使用 WRITE_RAW_DATA.

OTN 上有一个示例演示包,展示了如何发送多字节电子邮件。

于 2009-10-07T09:35:25.437 回答