#include "fivewin.ch"
function Main()
local cOemHex := "8494818E999AE1"
loCAL cOemText := HEXTOSTR( cOemHex )
local cAnsiText, cUtf8Text
cAnsiText := UML_OEMTOANSI( cOemText )
? cAnsiText, Len( cAnsiText )
// no proble, even if we input ANSI by mistake
cAnsiText := UML_OEMTOANSI( cAnsiText )
? cAnsiText, Len( cAnsiText )
cUtf8Text := UTF16toUTF8( strtoWide( cAnsiText ) )
? cUtf8Text, STRTOHEX( cUtf8Text ), Len( cUtf8Text )
return nil
#pragma BEGINDUMP
#include <hbapi.h>
HB_FUNC( UML_OEMTOANSI )
{
unsigned char achar[] = {
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,
29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,
54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,
79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,
103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,
122,123,124,125,126,127,128,252,130,131,228,133,134,135,136,137,138,139,140,
141,196,143,144,145,146,147,246,149,150,151,152,214,220,155,156,157,158,159,
160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,
179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,
198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,
217,218,219,220,221,222,223,224,223,226,227,228,229,230,231,232,233,234,235,
236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,
255 };
char * pText = ( char * ) hb_parc( 1 );
int iLen = hb_parclen( 1 );
int i;
unsigned char c;
for ( i = 0; i < iLen; i++ )
{
c = pText[ i ];
pText[ i ] = achar[ c ];
}
hb_retc( pText );
}
#pragma ENDDUMP