SQL IMAGE字段读取

SQL IMAGE字段读取出来,需要转换成二进制字符串否则是乱码

var

stext,sTextA :String;

begin

sTextA :=ADOQuery.FieldByName('well').AsString; //功图二进制数据

for j:=1 to Length(sTextA) do
 stext:=stext+inttoHex(Ord(sTextA[j]),2);  //返回对应的ASCII码值

 

 

ord函数与chr函数

字母“A”对应的ASCII码值为65 ord('A') 65

chr(65) 'A'  

中文 转 unicode 说白了就是将单个字符,例如:“网页”的页字 用 Ord函数转成 10进制数字,再转为16进制数据。就这样。

其实,用系统的计算器,科学型计算,也可以计算出来。

//Char 类型与其编码值的转换:
var
b: Byte;
c: Char;
begin
b := Ord('A');   {返回: 65}
b := Ord(#65);   {返回: 65}
b := Ord($41);   {返回: 65}
b := Ord(#$41); {返回: 65}
b := Byte('A'); {返回: 65}
b := Byte(#65); {返回: 65}
b := Byte($41); {返回: 65}
b := Byte(#$41); {返回: 65}
c := Chr(65);    {返回: A }
c := Chr($41);   {返回: A }
c := Char(65);   {返回: A }
c := Char($41); {返回: A }
end;
--------------------------------------------------------------------------------

//WideChar 类型与其编码值的转换; 汉字的 UniCode 编码范围是: $4E00..$9FA5
var
w : Word;
c : WideChar;
ws: WideString;
s : string;
begin
{准备工作}
ws := '万一';
c := ws[1];
//ShowMessage(c); {万}
{从汉字到 UniCode 编码}
w := Ord(c);                  {返回十进制数        : 19975}
w := Word(c);                 {返回十进制数        : 19975}
s := Format('%.4x',[Ord(c)]); {返回十六进制的字符串: 4E07 }
s := IntToHex(Ord(c), 4);     {返回十六进制的字符串: 4E07 }
{从 UniCode 编码到汉字}
c := #19975;           {万}
c := #$4E07;           {万}
c := #$4e07;           {万}
c := WideChar(19975); {万}
c := WideChar($4E07); {万}
end;

中文Unicode转换 http://app.baidu.com/2unicode?keyword=unicode%E8%BD%AC

全文:http://hi.baidu.com/mit1208/item/3588c374b076433a7044234b

Delphi Unicode转中文:http://www.cnblogs.com/devcjq/articles/3747918.html

posted @ 2021-06-09 17:47  南国之恋  阅读(503)  评论(0编辑  收藏  举报