Meertalige en emoji-ondersteuning in taalservicefuncties

Meertalige en emoji-ondersteuning heeft geleid tot Unicode-coderingen die meer dan één codepunt gebruiken om één weergegeven teken weer te geven, een grafeme genoemd. Emoji's zoals 🌷 en 👍 kunnen bijvoorbeeld meerdere tekens gebruiken om de vorm samen te stellen met extra tekens voor visuele kenmerken, zoals huidskleur. Op dezelfde manier wordt het Hindi-woord अनुच्छेद gecodeerd als vijf letters en drie combinatiemarkeringen.

Vanwege de verschillende lengten van mogelijke meertalige coderingen en emoji-coderingen, kunnen taalservicefuncties verschuivingen retourneren in het antwoord.

Verschuivingen in het API-antwoord

Wanneer verschuivingen worden geretourneerd door het API-antwoord, moet u het volgende onthouden:

  • Elementen in het antwoord kunnen specifiek zijn voor het eindpunt dat is aangeroepen.
  • HTTP POST/GET-nettoladingen worden gecodeerd in UTF-8, wat al dan niet de standaardtekencodering is op uw compiler of besturingssysteem aan de clientzijde.
  • Verschuivingen verwijzen naar het aantal grafeme's op basis van de Unicode 8.0.0-standaard , niet het aantal tekens.

Subtekenreeksen extraheren uit tekst met verschuivingen

Verschuivingen kunnen problemen veroorzaken bij het gebruik van op tekens gebaseerde subtekenreeksmethoden, bijvoorbeeld de methode .NET substring(). Een probleem is dat een verschuiving ertoe kan leiden dat een subtekenreeksmethode eindigt in het midden van een grafeme-codering met meerdere tekens in plaats van het einde.

In .NET kunt u de klasse StringInfo gebruiken, waarmee u met een tekenreeks kunt werken als een reeks tekstelementen in plaats van afzonderlijke tekenobjecten. U kunt ook zoeken naar grapheme splitterbibliotheken in de softwareomgeving van uw voorkeur.

De functies van de taalservice retourneren deze tekstelementen ook voor het gemak.

Eindpunten die een offset retourneren, ondersteunen de stringIndexType parameter. Met deze parameter worden de offset kenmerken en length in de API-uitvoer aangepast aan het aangevraagde tekenreeksiteratieschema. Momenteel ondersteunen we drie typen:

Als de stringIndexType aangevraagde overeenkomt met de gewenste programmeeromgeving, kan subtekenreeksextractie worden uitgevoerd met behulp van standaard subtekenreeks- of segmentmethoden.

Zie ook