Delen via


Meertalige ondersteuning en emoji-ondersteuning in taalservicefuncties

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

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

Verschuivingen in het API-antwoord

Wanneer offsets worden geretourneerd, moet u het API-antwoord onthouden:

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

Subtekenreeksen extraheren uit tekst met offsets

Verschuivingen kunnen problemen veroorzaken bij het gebruik van op tekens gebaseerde subtekenreeksmethoden, bijvoorbeeld de methode .NET-subtekenreeks(). Een probleem is dat een offset ertoe kan leiden dat een subtekenreeksmethode in het midden van een grapheme-codering met meerdere tekens eindigt 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 uw favoriete softwareomgeving.

De taalservicefuncties retourneren deze tekstelementen ook voor het gemak.

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

Als het stringIndexType aangevraagde overeenkomt met de programmeeromgeving van keuze, kan subtekenreeksextractie worden uitgevoerd met behulp van standaardsubtekenreeksen of segmentmethoden.

Zie ook