Többnyelvű és emoji-támogatás a Nyelvi szolgáltatás funkcióiban
A többnyelvű és emoji-támogatás olyan Unicode-kódolásokat eredményezett, amelyek egynél több kódpontot használnak egyetlen megjelenített karakter, az úgynevezett grapheme ábrázolásához. Az emojik például több karaktert is használhatnak 🌷 👍 az alakzat megírásához további karakterekkel a vizuális attribútumokhoz, például a bőr tónusához. Hasonlóképpen, a hindi szó अनुच्छेद
öt betűként és három egyesítési jelként van kódolva.
A lehetséges többnyelvű és emoji kódolások eltérő hossza miatt a Nyelvi szolgáltatás funkciói eltolásokat adhatnak vissza a válaszban.
Eltolások az API-válaszban
Amikor eltolásokat ad vissza az API-válasz, ne feledje:
- A válasz elemei a meghívott végpontra vonatkozhatnak.
- A HTTP POST/GET hasznos adatok UTF-8-ban vannak kódolva, ami lehet, hogy nem az ügyféloldali fordító vagy operációs rendszer alapértelmezett karakterkódolása.
- Az eltolások a Unicode 8.0.0 szabványon alapuló gráfszámokat jelölik, nem pedig a karakterszámokat.
Részsztringek kinyerése szövegből eltolásokkal
Az eltolások problémákat okozhatnak a karakteralapú részstring metódusok, például a .NET substring() metódus használatakor. Az egyik probléma az, hogy egy eltolás miatt a több karakterből álló gráfkódolás közepén végződhet egy substring metódus a vége helyett.
A .NET-ben fontolja meg a StringInfo osztály használatát, amely lehetővé teszi a sztringek szöveges elemek sorozataként való használatát az egyes karakterobjektumok helyett. Az előnyben részesített szoftverkörnyezetben grapheme splitter kódtárakat is kereshet.
A Nyelvi szolgáltatás funkciói ezeket a szöveges elemeket is visszaadják a kényelem érdekében.
Az eltolást visszaadó végpontok támogatják a paramétert stringIndexType
. Ez a paraméter az offset
API-kimenetben lévő attribútumokat a length
kért sztring iterációs sémának megfelelően módosítja. Jelenleg három típust támogatunk:
textElement_v8
(alapértelmezett): a Unicode 8.0.0 szabvány által meghatározott gráfok fölé visziunicodeCodePoint
: a Python 3 alapértelmezett sémája, a Unicode Code Points használatával iterálutf16CodeUnit
: iterálja az UTF-16 kódegységeket, a JavaScript, a Java és a .NET alapértelmezett sémáját
Ha a stringIndexType
kért megfelel a választott programozási környezetnek, a részszúrás kinyerése szabványos részszűrési vagy szeletelési módszerekkel végezhető el.