郵件發送后附件名稱或下載附件名稱是亂碼的解決(C++)


一、分析原因

   為什么?

問題的症結:就是編碼問題,中文編碼問題。

那么解決思路,就是郵件本身是什么?參考博客:http://blog.51cto.com/boytnt/1606985

當然這個博客並沒有給我解決問題,但是給我思路了,我們怎么看我們發出去的郵件格式。有什么關鍵字組成我們想要發送的文字?

郵件的MIME里面的文本要實現
Content-disposition: attachment;filename*=GB2312''"...

郵件名稱要采用:URL編碼

當然這是否能解決大多數問題,我沒有測試過,但是解決中文問題,肯定要從郵件本身的傳輸上面去思考~

 

二 、C++解決方案

 

   QString tem = QFileInfo(*file).fileName();
   QTextCodec * codecGB2312 = QTextCodec::codecForName("GB2312");
    QByteArray byteArrayGB2312 = codecGB2312->fromUnicode(tem);
    ByteArray byteArrayPercentEncoded = byteArrayGB2312.toPercentEncoding();
 
        
        this->header += "Content-disposition: attachment;filename*=GB2312''"+byteArrayPercentEncoded+"\r\n";
 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM