写一个收邮件的程序,标题要Base64解码。我看网上的写了一个解GB2312的函数,可以用,但碰到UTF-8编码的就不行。
然后我又找到一个说是能解UTF-8的:http://bbs.csdn.net/topics/300045820,用他的字符串测试了一下,的确可以。可一旦用我收到的字符串:'=?UTF-8?B?54yq?='来测试,怎么弄都是乱码:'??'。我很迷惑:到底是我的字符串有问题还是函数有问题?我用的是Delphi7tips:那个邮件是从手机客户端发出的
然后我又找到一个说是能解UTF-8的:http://bbs.csdn.net/topics/300045820,用他的字符串测试了一下,的确可以。可一旦用我收到的字符串:'=?UTF-8?B?54yq?='来测试,怎么弄都是乱码:'??'。我很迷惑:到底是我的字符串有问题还是函数有问题?我用的是Delphi7tips:那个邮件是从手机客户端发出的
解决方案 »
- delphi7使用ClientSocket.Socket.ReceiveText接收上的问题请教一下大神
- 求一递归创建菜单的算法
- 如果选择带包编译,都需要把哪些包一起发布呢?
- 如何把随机数加入grid里面
- 求一部动画片,300分赠上
- 建议斑主封杀反动分子--Eysoft(小伙子),支持者请进!!
- MDI中,我用Toolbar,controlbar和menu做了一个菜单,但是子窗体最大化时,右上角的三各系统按钮不见了,请问怎么做?
- richedit光标定位
- 怎样将一个Form弹到前面来??
- CREATE procedure TableExists (@tablename varchar(20))
- 一个类中如何调用非该类的重名过程。问了好多人都不知道
- PrintWindow函数可以在WIN7下后台截取DX游戏图片吗?
var
strDecode:string;
posStart:Integer;
posEnd:Integer;
tmp:string;
begin
while pos('=?utf-8?b?',lowercase(strInput))>0 do
begin
try
posStart:=pos('=?utf-8?b?',lowercase(strInput));
posEnd:=pos('?=',lowercase(strInput));
strDecode:=strDecode+copy(strInput,1,posStart-1);
tmp:=copy(strInput,posStart+10,posEnd-posStart-11);//原来写成了posStart+11,因为代码是从解GB2312那个过程拷贝过来的,没注意改,改成posStart+10就行了
strDecode:=strDecode+DecodeString(tmp);
strInput:=copy(strInput,posEnd+2,length(strInput)-posEnd-1);
finally
Application.ProcessMessages;
end;
end;
strDecode := strDecode + strInput;
result := strDecode;
end;