Delphi 往IC卡中写入汉字

往CPU卡中写入汉字或特殊字符,需要先建一个透明文件,然后用APDU命令去修改这个文件,但APDU命令的数据域是不接受汉字或特殊字符的,所以需要把要写入的汉字转成16进制的字节码。读出的时候同样需要把16进制的数据转化成汉字,在此可提供三个函数供参考:

//--------------------此函数可把汉字转化为16进制字符串输出--------------------------------------

function ChineseToHex(Chinese:String):String;

begin
result:=InttoHex(ord(Chinese[1]),2)+InttoHex(ord(Chinese[2]),2);
end;

//--------------------此函数可把4个16进制字符串转化成一个汉字输出--------------------------------------

function HextoChinese(HexStr:String):String;
var
hi,lo:integer;
begin
    hi:=strtoint('$'+leftstr(HexStr,2));
    lo:=strtoint('$'+rightstr(HexStr,2));
    result:=widestring(char(hi)+char(lo));
end;

//--------------------此函数可把汉字或字符转化成16进制字符串输出--------------------------------------

function ChartoHex(CharStr:String):String;

begin
     if ord(CharStr[1])<128 then
      result:=inttohex(strtoint(inttostr(ord(CharStr[1]))),2)
     else
      result:=InttoHex(ord(CharStr[1]),2)+InttoHex(ord(CharStr[2]),2);
end;

猜你喜欢

转载自blog.csdn.net/ampeter/article/details/80214390