Megosztás a következőn keresztül:


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é viszi
  • unicodeCodePoint: a Python 3 alapértelmezett sémája, a Unicode Code Points használatával iterál
  • utf16CodeUnit: 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.

Lásd még