zoukankan      html  css  js  c++  java
  • base64转换string

    1.通过函数转

    function Base64ToStr1(const Base64: string): string;
    var
    I, J, K, Len, Len1: Integer;
    B4: array[0..3] of Byte;
    begin
    if Base64 = '' then
    begin
    Result := '';
    Exit;
    end;
    Len := Length(Base64);
    if Len and 3 <> 0 then
    raise Exception.Create('Invalid Base64 length');
    Len1 := (Len shr 2) * 3;
    SetString(Result, nil, Len1);
    I := 1;
    J := 1;
    while I <= Len do
    begin
    for K := 0 to 3 do
    begin
    case Base64[I] of
    'A'..'Z':
    B4[K] := Ord(Base64[I]) - 65;
    'a'..'z':
    B4[K] := Ord(Base64[I]) - 71;
    '0'..'9':
    B4[K] := Ord(Base64[I]) + 4;
    '+':
    B4[K] := 62;
    '/':
    B4[K] := 63;
    '=':
    B4[K] := 0;
    else
    raise Exception.CreateFmt('#%d: Invalid char in Base64', [Ord(Base64[I])]);
    end;
    Inc(I);
    end;
    Result[J] := Chr((B4[0] shl 2) or (B4[1] shr 4));
    Result[J + 1] := Chr((B4[1] shl 4) or (B4[2] shr 2));
    Result[J + 2] := Chr((B4[2] shl 6) or B4[3]);
    Inc(J, 3);
    end;

    I := Pos('=', Base64);
    if I <> 0 then
    begin
    I := Len - I + 1;
    Delete(Result, Len1 - I + 1, I);
    end;
    end;

    2.用字符串流转

    sst := TStringStream.Create(str);
    sst.Position :=0;
    ms := TMemoryStream.Create;
    DecodeStream(sst,ms);

  • 相关阅读:
    linux based bottlerocket-os
    linux resolver
    linux hosts_access
    mysql performance storage engine
    linux security module机制
    linux seccomp使用和原理
    pxe过程和原理
    数据库
    python基础语法
    补充进程 线程和携程基础概念
  • 原文地址:https://www.cnblogs.com/maweiwei/p/12094788.html
Copyright © 2011-2022 走看看