一组十六进制字符串,如: CE D2 B5 C4 CA D6 BB FA BA C5 CE AA A3 BA 31 33 38 36 33 39 39 38 35 36 32 A3 AC C4 E3 B5 C4 CA C7 B6 E0 C9 D9 A3 BF怎样把这段字十六进制字符串转化为汉字

解决方案 »

  1.   

    我的手机号为:xxxxxxxx,你的是多少?function HexToStr( //十六进制字符串处理成字符串
      mHex: string //十六进制字符串
    ): string; //返回处理后的字符串
    var
      I: Integer;
    begin
      Result := '';
      mHex := StringReplace(mHex, #32, '', [rfReplaceAll]);
      for I := 1 to Length(mHex) div 2 do
        Result := Result + Chr(StrToIntDef('$' + Copy(mHex, I * 2 - 1, 2), 0));
    end; { HexToStr }function StrToHex( //字符串处理成十六进制字符串
      mStr: string; //字符串
      mSpace: Boolean = False //是否用空格分开
    ): string; //返回处理后的十六进制字符串
    const
      cSpaceStr: array[Boolean] of string = ('', #32);
    var
      I: Integer;
    begin
      Result := '';
      for I := 1 to Length(mStr) do
        Result := Format('%s%s%.2x', [Result, cSpaceStr[mSpace], Ord(mStr[I])]);
      if mSpace then Delete(Result, 1, 1);
    end; { StrToHex }
      

  2.   

    既然清洁工都说过了那个,那我说下另外的两个函数吧 供LZ学习===========================================================================
    function uhfHexToInt(const Value: AnsiString): Cardinal;  //将十六进制字符串转化为整数
    var
      i: Integer;
      s, sTemp: AnsiString;
    begin
      Result := 0;
      s := '';
      for i := 1 to Length(Value) do
      begin
        sTemp := uhfHexCharToBin(Value[i]);
        if sTemp = '' then Exit;
        s := s + sTemp;
      end;
      Result := uhfBinToInt(s);
    end;=========================================================function HexStrToInt(str: String): integer; //转换16进制字符串
    var
      i: integer;
      len: integer;
    begin
      str := upperCase(str);
      len := length(str);
      for i := len downto 1 do
        result := Trunc(power(16, len - i)) * chValue(str[i]);
    end;function StrToInt2(str: String): integer; //转换
    begin
      str := Trim(str);
      if (LastDelimiter('Hh', str) <> 0) and (LastDelimiter('Hh', str) <> Length(str)) then //非法格式
        raise EConvertError.Create('格式不对')
      else if LastDelimiter('Hh', str) = Length(str) then //Hex
        result := HexStrToInt(Copy(str, 1, Length(str) -1))
      else  //Dec
        result := StrToInt(str);
    end;