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