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


本文整理自网络,侵删。

 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.

 

来源:https://www.cnblogs.com/del/archive/2008/12/26/1362978.html

相关阅读 >>

Delphi firemonkey 学习笔记 �c tpopup 控件的使用

Delphi 提高unigui开发效率的两个方法

dll与exe之间的恩爱情仇

Delphi 线程同步(线程安全)

Delphi android使用idhttp.get抓取https(ssl)文件

Delphi tlistview控件里添加背景色

Delphi xe6取得android智能手机的电话号码等的终端信息

Delphi 2009 新增单元 character[1]: toupper、tolower - 字符与字符串的大小写转换

tmsweb core 组件居中显示

Delphi xe7 ios 取得系统字型名称

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...