Obsah / Utility / CHARSET / CharToUnicode
Zdrojový kód: INCLUDE\UTIL\CHARSET.INC, UTIL\CHARSET.ASM
CharToUnicode - Konverze znaku na Unicode
Funkce CharToUnicode zkonvertuje 1-bajtový znak z příslušné znakové sady na kód Uicode.
|
Na vstupu funkce obsahuje registr AL 1-bajtový znak ke konverzi, registr EBX ukazatel na znakovou sadu CHARSET a registr EDX Unicode kód znaku, který se použije v případě neplatnosti konvertovaného znaku. Je povolena pouze 1-bajtová znaková sada (není funkcí kontrolováno). Na výstupu z funkce je v registru EAX navrácen Unicode kód znaku (nebo neplatný kód z registru EDX, pokud nejsou k dispozici další data) a v případě chyby příznak chyby CY.
|
Jedná-li se o znak s kódem 0 až 7Fh, je funkce ukončena bez dalších operací, protože znaky s tímto kódem jsou ve všech znakových sadách shodné s kódem Unicode a není tedy nutný jejich převod.
|
Pro znaky s kódem 80h až 0FFh je z popisovače CHARSET načten ukazatel na tabulku pro převod znaků na Unicode a z ní je načten odpovídající Unicode kód znaku. Pokud je daný znak neplatný (tj. jeho hodnota je 0), navrátí se chybový kód.
|
Pro neplatný znak navrátí funkce obsah registru EDX s kódem neplatného znaku nebo, je-li obsah registru EDX nulový, implicitní neplatný znak UNINOASC.
Obsah / Utility / CHARSET / CharToUnicode