Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Aplikace zapisují znaky definované koncovým uživatelem (EUDC) a znaky PUA (Private Use Area) na obrazovku nebo tiskárnu stejně jako ostatní znaky pomocí výstupních funkcí, jako jsou TextOut a ExtTextOut. Tyto funkce automaticky načítají informace o znakech z písem EUDC nebo PUA, pokud je povolená služba EUDC. Další informace viz End-User_Defined a znaky v oblasti privátního použití.
Při psaní znaků EUDC nebo PUA závisí operace textové výstupní funkce na aktuálně vybraném písmu. Pokud je vybraným písmem integrované písmo EUDC nebo PUA, funkce načte informace o znakech z daného písma. Pokud je vybrané písmo TrueType s dvojbajtovou znakovou sadou (DBCS), které má přidružené samostatné písmo EUDC, funkce načte informace ze zadaného písma EUDC. Podobně platí, že pokud je vybraným písmem Unicode písmo TrueType, které má přidružené samostatné písmo PUA, funkce načte informace z písma znaku PUA. Pokud vybrané písmo nemá přidružené písmo EUDC nebo PUA, funkce načte informace ze systému výchozího písma EUDC. Pokud znak není ve výchozím systémovém písmu EUDC nebo neexistuje výchozí systémové písmo EUDC, funkce zapíše výchozí znak definovaný vybraným písmem.
Aplikace mohou mapovat EUDC do a z Unicode pomocí funkcí MultiByteToWideChar a WideCharToMultiByte. Funkce MultiByteToWideChar mapuje většinu znaků EUDC na znaky v kódu PUA unicode. Pro podporu některých národních nebo regionálních norem je však možné některé řadiče domény EU mapovat na jiné body kódu než PUA Unicode. Funkce WideCharToMultiByte mapuje znak v PUA na jeho EUDC protějšek, pokud takové mapování existuje a pokud bod kódu nemá platné mapování mimo PUA v kódu Unicode. Ne všechny znakové stránky mají rozsah EUDC. Znaková stránka zadaná ve volání WideCharToMultiByte musí obsahovat rozsah kódu EUDC, aby mohlo dojít k mapování na rozsah EUDC. Pokud znaková stránka neobsahuje rozsah kódu EUDC, funkce načte výchozí znak pro všechny znaky v kódu PUA unicode.
MultiByteToWideChar a WideCharToMultiByte nezaručují obousměrné mapování. Jinými slovy, je možné začít s určitým vícebajtovým řetězcem obsahujícím objekty EUDC, namapovat řetězec na Unicode pomocí MultiByteToWideChar a namapovat ho zpět na původní znakovou sadu DBCS s WideCharToMultiBytea nakonec výsledkem, který není stejný jako původní řetězec. Aplikace, které se spoléhají na mapování EUDC na Unicode, by měly zajistit, aby všechny potřebné znaky mohly přecházet mezi odpovídající oblastí kódové stránky EUDC a soukromou oblastí použití Unicode.
Aplikace by se neměly pokoušet mapovat znaky definované uživatelem (EUDC) z jedné kódové stránky na jinou. Pokud aplikace začíná použitím EUDC ze jedné znakové stránky, mapuje ji na Unicode s MultiByteToWideChara mapuje na jinou DBCS s WideCharToMultiByte, neexistují žádné záruky ohledně výsledků. Původní znak může být přiřazen k jiné položce EUDC v cílové znakové stránce, nebo může být přiřazen jako nedefinovaný znak. Podobně může mapování řetězce Unicode na znakovou stránku s rozsahem EUDC vést k neočekávaným důsledkům. Pokud řetězec Unicode obsahuje bod kódu PUA, je možné, že bod kódu bude mapován na EUDC, který nepředstavuje stejný znak.
Aplikace můžou porovnávat řetězce DBCS, které obsahují EUDC, pomocí verze funkce ANSI CompareString. Funkce efektivně mapuje znaky na Unicode před porovnáním hodnot znaků. Aplikace mohou vytvořit klíč řazení pro řetězec pomocí ANSI verze funkce LCMapString a hodnoty LCMAP_SORTKEY. Tato funkce efektivně mapuje znaky na Unicode jako první. Všechny znaky v PUA jsou seřazeny za všemi ostatními znaky Unicode. V oblasti jsou znaky seřazeny v číselném pořadí. Pokud se aplikace pokusí načíst informace CTYPE pro EUDC pomocí funkce GetStringTypeA, funkce načte NULL pro každý znak.
Související témata