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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值