Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Program skriver slutanvändardefinierade tecken (EUDCs) och pua-tecken (private use area) till skärmen eller skrivaren precis som de skriver andra tecken, med hjälp av utdatafunktioner som TextOut och ExtTextOut. Dessa funktioner hämtar automatiskt teckeninformation från EUDC- eller PUA-teckenteckensnitt om EUDC är aktiverat. Mer information finns i End-User_Defined och privata användningsområdestecken.
När du skriver EUDC- eller PUA-tecken beror textutdatafunktionen på det valda teckensnittet. Om det valda teckensnittet är ett integrerat EUDC- eller PUA-teckenteckensnitt hämtar funktionen teckeninformation från det teckensnittet. Om det markerade teckensnittet är ett teckenuppsättning med dubbla byte (DBCS) TrueType-teckensnitt som har ett associerat separat EUDC-teckensnitt, hämtar funktionen information från det angivna EUDC-teckensnittet. Om det markerade teckensnittet är ett Unicode- TrueType-teckensnitt som har ett associerat separat PUA-teckensnitt, hämtar funktionen information från PUA-teckensnittet. Om det valda teckensnittet inte har ett associerat EUDC- eller PUA-teckenteckensnitt hämtar funktionen information från systemets standardteckensnitt för EUDC. Om tecknet inte finns i systemets standardteckensnitt för EUDC eller om det inte finns något eudc-standardteckensnitt skriver funktionen standardtecknet som definieras av det valda teckensnittet.
Program kan mappa EUDCs till och från Unicode med hjälp av funktionerna MultiByteToWideChar och WideCharToMultiByte. Funktionen MultiByteToWideChar mappar de flesta EUDCs till tecken i Unicode PUA. Men för att stödja vissa nationella eller regionala standarder kan vissa EUDC:er mappas till icke-PUA Unicode-kodpunkter. Funktionen WideCharToMultiByte mappar ett tecken i PUA till dess EUDC-motsvarighet, om det finns en sådan mappning och om kodpunkten inte har en giltig icke-PUA-mappning i Unicode. Alla kodsidor har inte ett EUDC-intervall. Kodsidan som anges i ett anrop till WideCharToMultiByte måste innehålla ett EUDC-kodintervall för att mappningen till EUDC-intervallet ska ske. Om kodsidan inte innehåller något EUDC-kodintervall hämtar funktionen standardtecknet för alla tecken i Unicode PUA.
MultiByteToWideChar och WideCharToMultiByte garanterar inte tur- och returmappning. Med andra ord är det möjligt att börja med en viss flerbytessträng som innehåller EUDCs, mappa strängen till Unicode med MultiByteToWideChar och mappa den tillbaka till den ursprungliga DBCS med WideCharToMultiByteoch sluta med ett resultat som inte är identiskt med den ursprungliga strängen. Program som förlitar sig på att mappa EUDC:er till Unicode bör se till att alla nödvändiga tecken kan köras tur och retur mellan rätt kodsida EUDC-område och Unicode PUA.
Program bör inte försöka mappa EUDC:er från en kodsida till en annan. Om en applikation börjar med en EUDC från en kodsida, mappas den till Unicode med MultiByteToWideChar, och sedan mappas till en annan DBCS med WideCharToMultiByte, finns det inga garantier för resultatet. Det ursprungliga tecknet kan mappas till en annan EUDC på målkodsidan eller mappas som ett odefinierat tecken. På samma sätt kan mappning av en Unicode-sträng till en kodsida som har ett EUDC-intervall ha oavsiktliga resultat. Om Unicode-strängen innehåller en PUA-kodpunkt är det möjligt att kodpunkten mappas till en EUDC som inte representerar samma tecken.
Program kan jämföra DBCS-strängar som innehåller EUDCs med hjälp av ANSI-versionen av funktionen CompareString. Funktionen mappar effektivt tecknen till Unicode innan du jämför teckenvärden. Program kan skapa en sorteringsnyckel för strängen med hjälp av ANSI-versionen av funktionen LCMapString och värdet LCMAP_SORTKEY. Den här funktionen mappar effektivt tecken till Unicode först. Alla tecken i PUA sorteras efter alla andra Unicode-tecken. I området sorteras tecken i numerisk ordning. Om ett program försöker hämta CTYPE-information för en EUDC med hjälp av funktionen GetStringTypeA hämtar funktionen NULL- för varje tecken.
Relaterade ämnen