[原]汉字及区位码互转

'由中文字符获得区位码
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

你可能感兴趣的:(汉字)