如何将Base64编码的字符串解码?

lzf913 2006-04-25 12:37:13
下面是C#的代码
string s="广州";
byte[] a=System.Text.Encoding.Unicode.GetBytes(s);
textBox1.Text=Convert.ToBase64String(a,0,a.Length);//这里得到编码后的字符串,但是用delphi无法解码,包括使用indy的控件

//但是使用C#自己的解码函数确可以正确解码
byte[] b=Convert.FromBase64String(textBox1.Text);
textBox2.Text= System.Text.Encoding.Unicode.GetString(b);
...全文
855 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxjh 2006-04-27
  • 打赏
  • 举报
回复
不好意思,说错了,是你的编码函数有问题的,我以前用java中的编码函数就有问题,java里面可以编解码没问题,但是delphi就是没法解开,就是因为java中的编码函数没有对回车符进行处理,导致编码和delphi的不一致,你那个编码函数要重新找一个的。
wxjh 2006-04-27
  • 打赏
  • 举报
回复
应该是解码函数有问题,不能处理回车符的问题,联系我qq:53997882,我发给你一个base64单元
飞天揽月 2006-04-25
  • 打赏
  • 举报
回复
base64编码 delphi自己就带有. 在用delphi做web方面的程序的时候必不可少。
首先在uses 加上 encddecd ;
在encddecd里面有四个 开放函数。
procedure EncodeStream(Input, Output: TStream); //base64 对stream编码
procedure DecodeStream(Input, Output: TStream); //base64 对stream解码
function EncodeString(const Input: string): string; //base64 对字符串编码
function DecodeString(const Input: string): string; //base64 对字符串解码



为什么不用Delphi自带的?
Delphi7的Indy面板上有两个Indy的控件,好像叫Base64Encode和Base64Decode吧?(具体你找找)直接用它就可以加密和解密Base64啦!
lzf913 2006-04-25
  • 打赏
  • 举报
回复
我从http://www.steven-studio.com/forum/blog.php?tid=84&starttime=0&endtime=0这里找到这个base64.pas了,试过,还是不行
老之 2006-04-25
  • 打赏
  • 举报
回复
http://book.77169.org/94/46747.htm
h2yang 2006-04-25
  • 打赏
  • 举报
回复
找一个base64.pas,里面有编码函数和解码函数。
类似于:
var str1,str2:string;
str1:=bm('需要编码的字串');
str2:=jm('需要解码的字串');
非常方便。
lzf913 2006-04-25
  • 打赏
  • 举报
回复
虽然可以得到相同的编码字符串,但是还是解码不了
柯本 2006-04-25
  • 打赏
  • 举报
回复
楼上说的没错:
procedure TForm1.Button1Click(Sender: TObject);
var
s:widestring;
begin
s:='广州';
IdBase64Encoder1.CodeString(pchar(s));
Edit1.Text:=IdBase64Encoder1.CompletedInput;
end;
结果为:
0;f17eXQ==
与C#相同
僵哥 2006-04-25
  • 打赏
  • 举报
回复
C#里面楼主是不是使用的是Unicode,那样的话编码出来的信息同GBK的肯定不一样.
老之 2006-04-25
  • 打赏
  • 举报
回复
Delphi2006下,.net程序的编码是Pz8=,win32程序的编码是uePW3e== 汗~
lzf913 2006-04-25
  • 打赏
  • 举报
回复
C#里我并没有指定编码表,请问如何更改C#里的编码表?
僵哥 2006-04-25
  • 打赏
  • 举报
回复
樓上可能使用的編碼表不一致,通常的編碼表编码出来的代码都是:uePW3Q==
lzf913 2006-04-25
  • 打赏
  • 举报
回复
同样是广州这两个字,delphi编码后是uePW3e==,C#编码后是f17eXQ==,完全不同啊
lzf913 2006-04-25
  • 打赏
  • 举报
回复
大家是否可以测试一下,就几行代码,很快就可以测试出到底能不能用的
lzf913 2006-04-25
  • 打赏
  • 举报
回复
to yq3woaini:
这个解码函数是我第一个试的,也是不行
飞天揽月 2006-04-25
  • 打赏
  • 举报
回复
IdDecoderMIME1
IdEncoderMIME1

5,931

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧