请详细说明Ascii7编码为什么?

解决方案 »

  1.   

    就是7位的Ascii,把最高位去掉了
      

  2.   

    function TMainform.SevenText(s:string):string;
    var
     xs:string;
     ys:string;
     temps:string;
     len,tim:integer;
     i,j:integer;
    begin
     xs:=s;
     ys:=s;
     len:=length(s);
     tim:=(len div 8);
     for i:=0 to tim-1 do
      begin
       for j:=1 to 7  do
        begin
         xs[8*i+j]:= Chr(ord(xs[8*i+j]) shr (j-1));
         ys[8*i+(j+1)]:= Chr(ord(ys[8*i+j+1]) shl (8-j));
         xs[8*i+j]:= Chr( ord(xs[8*i+j]) or ord(ys[8*i+(j+1)]));
        end;
      end;
     len:=len mod 8;
     i:=tim;
     for j:=1 to len do
       begin
         xs[8*i+j]:= Chr(ord(xs[8*i+j]) shr (j-1));
         ys[8*i+(j+1)]:= Chr(ord(ys[8*i+j+1]) shl (8-j));
         xs[8*i+j]:= Chr( ord(xs[8*i+j]) or ord(ys[8*i+(j+1)]));
        end;
     len:=length(s); temps:=copy(s,1,len-tim);
     j:=0;
     for i:=1 to len do
      begin
      if (i mod 8 <>0) then
        begin
         j:=j+1;
         temps[j]:=xs[i];
        end;
      end;
     
     result:=temps;
    end;
    以上是一个将八位字符串压缩为七位字符串的一个函数
      

  3.   

    bjseesea(斌斌)谢谢,给你一半的分! 34分另外我取消最早提出的问题,另外问一个:如何将UniCode的Hex字符串转换为当前系统代码页支持的字符串?
    函数34分寻求该函数
      

  4.   

    bjseesea(斌斌),等两天再给你分。如果两天以后还没有人能回答我上面那个问题,这68分都给你!
      

  5.   

    将代码页为CP936的Unicode编码转换为GB2312的中文编码即可 以下是C++Builder的实现代码String  DecodeChinese(String InputStr){        wchar_t Buf[300];        for(int i=0;i<InputStr.Length();i=i+4)        {                Buf[i/4]=StrToInt("0x"+InputStr.SubString(i+1,4));        }        Buf[InputStr.Length()/4]=0;        return WideCharToString(Buf);}