一、分析原因
為什么?
問題的症結:就是編碼問題,中文編碼問題。
那么解決思路,就是郵件本身是什么?參考博客: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";