[原]汉字及区位码互转

'由中文字符获得区位码
function
getatcode(byval widechar as string * 2) as string dim byt(1 to 2) as byte static bytptr as dword bytptr = varptr(byt(1))
    !   push  esi
    !   push  edi
    !   lea   esi, offset widechar
    !   mov   edi, bytptr
    !   cld
    !   mov   ecx, 1
    !   rep   movsw
    !   pop   edi
    !   pop   esi
    function = "&H" & hex$(byt(1) - &HA0, 2) & hex$(byt(2) - &HA0, 2)
end function

'由区位码得到中文字符 function atcode2char(byval atcode as long) as string dim byt(1 to 2) as byte static widechar as string * 2, bytptr as dword byt(1) = val("&H" & left$(hex$(atcode, 4), 2)) + &HA0 byt(2) = val("&H" & right$(hex$(atcode, 4), 2)) + &HA0 bytptr = varptr(byt(1))
    !   push  esi
    !   push  edi
    !   mov   esi, bytptr
    !   lea   edi, offset widechar
    !   cld
    !   mov   ecx, 1
    !   rep   movsw
    !   pop   edi
    !   pop   esi
    function = widechar
end function

转载于:https://www.cnblogs.com/nikosoft/p/4151280.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值