delphi±£´æ¶ÁÈ¡utf 8µÄÎı¾Îļþ
delphi±£´æ¶ÁÈ¡utf-8µÄÎı¾Îļþ
¸ø¿Í»§×öÁËÒ»¸öÅúÁ¿Ê¶±ðͼÏñ²¢ºÏ³ÉË«²ãpdfµÄ³ÌÐò£¬×îºó¿Í»§ÐèÒªÉú³ÉµÄͬʱ¸½´øÒ»·Ý¼Çʱ¾Îļþ£¬¾ÍÊÇOCR¹ýºóµÄÎı¾£¬²¢Ö¸¶¨utf-8¸ñʽµÄ¡£ÔÚ´¦Àíutf-8ʱ³öÏÖÁ˵ãСÎÊÌ⣬ÏÖÔÚ×ܽáÈçÏÂ
Ê×ÏÈ ÀûÓÃdelphi×Ô´øµÄUTF8Encodeº¯Êý£¬½«ÆÕͨ×Ö·ûת»»Îªutf-8±àÂë
´´½¨Ò»¸öÁ÷£¬MemoryStream»òFileStream¶¼¿É
º¯Êý¿´ÆðÀ´ÈçÏÂ
ÒýÓÃ
procedure SaveUTF8File(AContent:WideString;AFileName: string);
var
ffileStream:TFileStream;
futf8Bytes: string;
S: string;
begin
ffileStream:=TFileStream.Create(AFileName,fmCreate);
futf8Bytes:= UTF8Encode(AContent);
ffileStream.Write(futf8Bytes[1],Length(futf8Bytes));
ffileStream.Free;
end;
ÔËÐкó²é¿´Éú³ÉµÄÎļþ£¬È«ÊÇÂÒÂ룬ÉÏÍøËÑË÷·¢ÏÖ
unicodeÎı¾Îļþ£ºÍ·Á½¸ö×Ö·û·Ö±ðÊÇFF FE£¨16½øÖÆ£©
utf-8Îı¾Îļþ£ºÍ·Á½¸ö×Ö·û·Ö±ðÊÇEF BB£¨16½øÖÆ£©
ÔÀ´ÊÇÍüÁ˰ÑÎļþÍ·¼Ó½øÈ¥ÁË
ÓÚÊǼÓÈë´úÂëºó
ÒýÓÃ
procedure SaveUTF8File(AContent:WideString;AFileName: string);
var
ffileStream:TFileStream;
futf8Bytes: string;
S: string;
begin
ffileStream:=TFileStream.Create(AFileName,fmCreate);
futf8Bytes:= UTF8Encode(AContent);
S:=#$EF#$BB#$BF;
ffileStream.Write(S[1],Length(S));
ffileStream.Write(futf8Bytes[1],Length(futf8Bytes));
ffileStream.Free;
end;
±£´æÎļþºó²é¿´£¬»¹ÊÇÂÒÂë¡£ÕÒÁ˰ëÌìÎÊÌâ×îºóÖÕÓÚ·¢ÏÖÎÊÌâ³öÏÖÔÚÉùÃ÷µÄ²ÎÊýWideStringÉÏ£¬¸Ä³Éstring¾ÍûÎÊÌâÁË¡£
×îºóÉú³É µÄ´úÂëÈçÏÂ
ÒýÓÃ
procedure SaveUTF8File(AContent:string;AFileName: string);
var
ffileStream:TFileStream;
futf8Bytes: string;
S: string;
begin
ffileStream:=TFileStream.Create(AFileName,fmCreate);
futf8Bytes:= UTF8Encode(AContent);
S:=#$EF#$BB#$BF;
ffileStream.Write(S[1],Length(S));
ffileStream.Write(futf8Bytes[1],Length(futf8Bytes));
ffileStream.Free;
end;
ÔÙ¸½ÉÏÒ»¶Î¶ÁÈ¡utf-8Îı¾µÄ´úÂë
ÒýÓÃ
function LoadUTF8File(AFileName: strin
Ïà¹ØÎĵµ£º
1£¬¹æ·¶¼ò½é
¡¡¡¡±¾¹æ·¶Ö÷Òª¹æ¶¨DelphiÔ´³ÌÐòÔÚÊéд¹ý³ÌÖÐËùÓ¦×ñѵĹæÔò¼°×¢ÒâÊÂÏî¡£±àд¸Ã¹æ·¶µÄÄ¿µÄÊÇʹ¹«Ë¾Èí¼þ¿ª·¢ÈËÔ±µÄÔ´´úÂëÊéдϰ¹ß±£³ÖÒ»Ö¡£ÕâÑù×ö¿ÉÒÔʹÿһ¸ö×éÔ±¶¼¿ÉÒÔÀí½âÆäËü×éÔ±µÄ´úÂ룬ÒÔ±ãÓÚÔ´´úÂëµÄ¶þ´Î¿ª·¢¼ÇÒäϵͳµÄά»¤¡£
2£¬Ò»°ã¸ñʽ¹æ·¶
2.1 Ëõ½ø
¡¡¡¡Ëõ½ø¾ÍÊÇÔÚµ±Ô´³ÌÐòµÄ¼¶¸Ä±äʱΪÔö¼ ......
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Button ......
µÚÒ»ÖÖ·½·¨,ʹÓÃSelectDirectory º¯Êý ,ÔÚShellApiÖÐ
procedure TForm2.BtSelectPathClick(Sender: TObject);
var
strCaption,strDirectory:String;
wstrRoot:WideString;
begin
strCaption:='ÕâÊÇä¯ÀÀÎļþ¼ÐµÄ˵Ã÷ÎÄ×Ö£¬¿ÉÒÔ¸ù¾ÝÐèÒª½ ......
//¼Óһϰ´Å¥£¬¼ÓÒ»¸ö¶Ô»°¿ò¾ÍOKÀ²
procedure TForm1.Button1Click(Sender: TObject);
var
S: String;
begin
if OpenDialog1.Execute then
begin
s := OpenDialog1.FileName;
WinExec( PChar(s), SW_NORMAL);
end;
end;
----------------------- ......