我嘗試使用包含挪威字符的Oracle的utl_smtp發送電子郵件(åæø)。否則,字符將在數據庫中正確存儲和顯示,但在電子郵件中顯示爲問號。來自Oracle的電子郵件中的特殊字符pl/sql
我的數據庫字符集爲WE8MSWIN1252
我曾嘗試在電子郵件不同的Content-Type MIME頭包括「text/plain的; charset =「win-1252」',這似乎沒有幫助。
我嘗試使用包含挪威字符的Oracle的utl_smtp發送電子郵件(åæø)。否則,字符將在數據庫中正確存儲和顯示,但在電子郵件中顯示爲問號。來自Oracle的電子郵件中的特殊字符pl/sql
我的數據庫字符集爲WE8MSWIN1252
我曾嘗試在電子郵件不同的Content-Type MIME頭包括「text/plain的; charset =「win-1252」',這似乎沒有幫助。
默認情況下,smtp是7位ascii(有點老技術:)。您必須使用UTL_SMTP.write_data
從documentation:使用 WRITE_DATA
發送
文本(VARCHAR2)數據轉換爲US7ASCII 在發送前。如果文本 包含多字節字符,則 無法轉換爲US7ASCII的文本中的每個 多字節字符被 替換爲'?'字符。如果 8BITMIME擴展名與 使用EHLO 子程序SMTP服務器協商,多字節數據VARCHAR2 可以通過使用
UTL_RAW
包, 所述 文本第一轉換爲RAW,然後使用WRITE_RAW_DATA
發送RAW數據發送。
有一個sample demo package on OTN顯示如何發送多字節電子郵件。
非常感謝Vincent! – fdl 2009-10-07 09:49:17