zoukankan      html  css  js  c++  java
  • 将字符串转换成 UTF8 编码的函数


    这种转换一般用于网页地址; 我不知道 Delphi 是不是有现成的函数, 用到了就写了一个.

    //函数:
    function ToUTF8Encode(str: string): string;
    var
      b: Byte;
    begin
      for b in BytesOf(UTF8Encode(str)) do
        Result := Format('%s%%%.2x', [Result, b]);
    end;
    
    //测试:
    var
      str: string;
    begin
      str := '万一';
      str := ToUTF8Encode(str);
      ShowMessage(str); //%E4%B8%87%E4%B8%80
    end;
    

    为 "小月124" 写了个反向函数:
    function ToUTF8Decode(const str: string): string;
    var
      List: TStrings;
      tmpStr: AnsiString;
      i: Integer;
    begin
      List := TStringList.Create;
      ExtractStrings(['%'], ['%'], PChar(str), List);
      SetLength(tmpStr, List.Count);
      for i := 0 to List.Count - 1 do
        Byte(tmpStr[i+1]) := StrToInt('$' + List[i]);
      List.Free;
      Result := UTF8Decode(tmpStr);
    end;
    
    { 调用测试 }
    procedure TForm1.FormCreate(Sender: TObject);
    var
      s1: AnsiString;
      s2: WideString;
    begin
      s1 := '%E4%B8%87%E4%B8%80';
      s2 := ToUTF8Decode(s1);
      ShowMessage(s2); { 万一 }
    end;
    
  • 相关阅读:
    HAOI2008题解
    codeforces round375(div.2)题解
    codeforces round373(div.2) 题解
    TJOI2015题解
    CF976D. Degree Set
    dtoj#4243. 熊猫(i)
    dtoj#4242. 大爷(w)&&CF1061E
    CF786C Till I Collapse
    dtoj#4239. 删边(cip)
    dtoj#2504. ZCC loves cube(cube)
  • 原文地址:https://www.cnblogs.com/del/p/1590975.html
Copyright © 2011-2022 走看看