首页 > 其他分享 >把流中的字符串转换为 UTF 格式

把流中的字符串转换为 UTF 格式

时间:2023-05-13 09:01:52浏览次数:42  
标签:UTF 流中 TObject stream2 stream1 bs 字符串 Memo1

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  stream1,stream2: TStringStream;
  b: Byte;
  bs: string;
begin
  {建立第一个流, 使用默认的双字节编码; 流中的数据是 Memo 中的字符串}
  stream1 := TStringStream.Create(Memo1.Text, 54936);

  {把第一个流的十六进制编码显示在 Memo 中}
  bs := '';
  for b in stream1.Bytes do bs := Format(bs + '%2x ', [b]);
  Memo1.Lines.Add(bs);

  {建立第二个流, 用 UTF8 编码; 还是基于第一个流中的字符串}
  stream2 := TStringStream.Create(stream1.DataString, TEncoding.UTF8);

  {把第二个流的十六进制编码显示在 Memo 中}
  bs := '';
  for b in stream2.Bytes do bs := Format(bs + '%2x ', [b]);
  Memo1.Lines.Add(bs);

  stream1.Free;
  stream2.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Memo1.Align := alTop;
  Memo1.ScrollBars := ssBoth;
  Memo1.Text := '万一的 Delphi 博客';
end;

end.

标签:UTF,流中,TObject,stream2,stream1,bs,字符串,Memo1
From: https://www.cnblogs.com/lucken2000/p/17396723.html

相关文章

  • 关于 Delphi 中流的使用 遍历读取流中的所有数据
    unitUnit1;interfaceuses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, Dialogs,StdCtrls;type TForm1=class(TForm)  Memo1:TMemo;  Memo2:TMemo;{需要添加两个Memo用于显示}  Button1:TButton;  ......
  • 记一次解‘字符串加解密’算法
    题目:对输入的字符串进行加解密,并输出。加密方法为:当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;其他字符不做变化。解密方法为加密的逆过程。数据范围:输入的......
  • sql server 将datetime类型的字段转化成字符串输出
    SELECTOBJID,NAME,CONVERT(varchar(19),CREATIONDATE,120)ASCREATIONDATEFROM[dbo].[SYS_DOCUMENTREV]WHERENAMELIKE'test%.pdf'ORDERBYCREATIONDATEDESC......
  • bat中传递JSON参数时,由于JSON包含一些特殊字符如引号、反斜杠等,需要对JSON字符串进行
    在bat中传递JSON参数时,由于JSON包含一些特殊字符如引号、反斜杠等,这些字符可能会导致命令行解释器解析出错。为了避免这些问题,通常建议对JSON字符串进行一些转义处理。具体转义规则如下:对每个双引号(")进行转义,变成"。对每个反斜杠(\)进行转义,变成\。当你传递一个JSON字符串......
  • 在C#中使用默认值初始化字符串数组的3种方式
    在本文中,您将学习到新建字符串数组如何设置默认值。数组是可以使用索引访问的相同类型的元素的集合。对于字符串数组,每个元素都是一个字符串值。在C#中创建新的字符串数组时,默认值为null。但是,在某些情况下,您可能希望使用特定的默认值而不是null初始化字符串数组。例如,希望A......
  • 2022-01-30:最小好进制。 对于给定的整数 n, 如果n的k(k>=2)进制数的所有数位全为1,则称 k(k
    2022-01-30:最小好进制。对于给定的整数n,如果n的k(k>=2)进制数的所有数位全为1,则称k(k>=2)是n的一个好进制。以字符串的形式给出n,以字符串的形式返回n的最小好进制。输入:“4681”输出:“8”解释:4681的8进制是11111。提示:n的取值范围是[3,10^18]。输入总是有效且......
  • Delphi 字符串拆分/分割[1] - TStringList
    1、TStringList默认以','拆分字符onstconstr:String='aaa,bbb,ccc,ddd';varstrs:TStrings;i:Integer;beginstrs:=TStringList.Create;strs.CommaText:=constr;fori:=0toStrs.Count-1doShowMessage(Strs[i]);//aaabbbcccd......
  • Why are Python strings immutable? 字符串是否可以改变
    实践1、pythons="abc"s+="34" #OK print(s)s[0]="k" # TypeError:'str'objectdoesnotsupportitemassignment   golang  s:="abc"  s+="456"  fmt.Println(s)  s[0]="......
  • python异步正则字符串替换,asyncio异步正则字符串替换re
     自然语言处理经常使用re正则模块进行字符串替换,但是文本数量特别大的时候,需要跑很久,这就需要使用asyncio异步加速处理importpandasaspdimportreimportasynciodata=pd.read_csv("guba_all_post_20230413.csv")data.dropna(inplace=True)#defreplace_betwee......
  • python异步字符串查找,asyncio和marisa_trie
     自然语言处理当中经常需要字符串的查找操作,比如通过查找返回字串在文本当中的位置,比如通过匹配实现的nerimportpandasaspdimportasyncio#data=pd.read_csv("guba_fc_result_20230413.csv")data=pd.read_csv("guba_all_post_20230413.csv")filename="cate_gr......