Dela via


Stöd för flerspråkiga och emojis i språktjänstfunktioner

Stöd för flerspråkiga och emojier har lett till Unicode-kodningar som använder mer än en kodpunkt för att representera ett enda tecken som visas, som kallas grapheme. Till exempel kan emojis som 🌷 och 👍 använda flera tecken för att skriva formen med ytterligare tecken för visuella attribut, till exempel hudton. På samma sätt kodas hindi-ordet अनुच्छेद som fem bokstäver och tre kombinationstecken.

På grund av de olika längderna för möjliga flerspråkiga kodningar och emojikodningar kan språktjänstfunktioner returnera förskjutningar i svaret.

Förskjutningar i API-svaret

Kom ihåg följande när förskjutningar returneras i API-svaret:

  • Element i svaret kan vara specifika för slutpunkten som anropades.
  • HTTP POST/GET-nyttolaster kodas till UTF-8, vilket kanske eller kanske inte är standardteckenkodningen i kompilatorn eller operativsystemet på klientsidan.
  • Förskjutningar refererar till antalet grafem baserat på standarden Unicode 8.0.0, inte teckenantal.

Extrahera delsträngar från text med offsetar

Förskjutningar kan orsaka problem vid användning av teckenbaserade substringsmetoder, till exempel .NET-metoden substring(). Ett problem är att en förskjutning kan leda till att en delsträngsmetod slutar mitt i en grapheme-kodning med flera tecken i stället för slutet.

I .NET bör du överväga att använda klassen StringInfo , som gör att du kan arbeta med en sträng som en serie textelement i stället för enskilda teckenobjekt. Du kan också leta efter grapheme splitter-bibliotek i önskad programvarumiljö.

Språktjänstfunktionerna returnerar även dessa textelement för enkelhetens skull.

Slutpunkter som returnerar en förskjutning stöder parametern stringIndexType . Den här parametern justerar attributen offset och length i API-utdata så att de matchar det begärda sträng-iterationsschemat. För närvarande stöder vi tre typer:

Om den begärda stringIndexType matchar den programmeringsmiljö du väljer, kan extrahering av delsträngar göras med hjälp av standardmetoder för delsträngar eller slice-metoder.

Se även