是否有任何編譯器指令或預處理器命令需要以特定的方式設置,以使Indy返回Utf-8字符串而不是將它們截斷爲Ansi字符串?如果有問題,我正在處理的項目有各種各樣的Delphi模式標誌。讓Indy在FPC/Lazarus中返回utf-8字符串而不是ansi字符串?
如果我直接將主題行設置爲UTF-8字符串(如下所示),它會在GUI上正確顯示,因此utf-8支持設置正確,我使用的是合適的字體和所有這些東東。爲了清晰起見,主題被聲明爲Utf8String。
MailItem.Subject := 'îņŢëŕŃïóЙǟŁ ŜũƥĵεϿד'; //Displays correctly
但是,如果我拉頭中的相同主題行,用印地對其進行解碼,我讓每一個國際性質恰好與一個問號所取代,應該成爲的人物正是數。看起來它將UTF-8轉換爲ANSI,這不是我想要的。
MailItem.Subject := IdCoderHeader.DecodeHeader('=?utf-8?B?w67FhsWiw6vFlcWDw6/Ds9CZx5/FgSDFnMWpxqXEtc61z7/Xkw==?='); //Displays '?????????? ???????'
那麼事情可能會錯誤和/或如何解決呢?
我使用Indy網站的Indy10和Windows上的Lazarus 1.0的最新版本,所以我不認爲這是「我的軟件需要更新」的錯誤,我認爲這可能是某種配置問題。