Dil hizmeti özelliklerinde çok dilli ve emoji desteği

Çok dilli ve emoji desteği, grafeme olarak adlandırılan tek bir görüntülenen karakteri temsil etmek için birden fazla kod noktası kullanan Unicode kodlamalara yol açmıştır. Örneğin ve gibi 🌷 👍 emojiler, şekli dış görünüm tonu gibi görsel öznitelikler için ek karakterlerle oluşturmak için birkaç karakter kullanabilir. Benzer şekilde, Hintçe sözcüğü अनुच्छेद beş harf ve üç birleştirme işareti olarak kodlanmıştır.

Olası çok dilli ve emoji kodlamalarının farklı uzunlukları nedeniyle, Dil hizmeti özellikleri yanıtta uzaklıklar döndürebilir.

API yanıtında uzaklıklar

API yanıtı döndürülürken uzaklıkları unutmayın:

  • Yanıttaki öğeler çağrılan uç noktaya özgü olabilir.
  • HTTP POST/GET yükleri UTF-8'de kodlanır ve istemci tarafı derleyicinizde veya işletim sisteminizde varsayılan karakter kodlaması olabilir veya olmayabilir.
  • Uzaklıklar, karakter sayılarına değil Unicode 8.0.0 standardına göre grafeme sayılarına başvurur.

Metinden uzaklıkları olan alt dizeleri ayıklama

Uzaklıklar karakter tabanlı alt dize yöntemleri kullanılırken sorunlara neden olabilir, örneğin .NET substring() yöntemi. Bir sorun, uzaklık bir alt dize yönteminin bitiş yerine çok karakterli grafeme kodlamasının ortasında bitmesinin neden olmasıdır.

.NET'te, dizeyle tek tek karakter nesneleri yerine bir dizi metin öğesi olarak çalışmanızı sağlayan StringInfo sınıfını kullanmayı göz önünde bulundurun. Tercih ettiğiniz yazılım ortamında grapheme bölücü kitaplıklarını da arayabilirsiniz.

Dil hizmeti özellikleri kolaylık sağlamak için bu metin öğelerini de döndürür.

Uzaklık döndüren uç noktalar parametresini stringIndexType destekler. Bu parametre, API çıkışındaki ve length özniteliklerini istenen dize yineleme düzeniyle eşleşecek şekilde ayarlaroffset. Şu anda üç türü destekliyoruz:

  • textElement_v8 (varsayılan): Unicode 8.0.0 standardı tarafından tanımlanan graflar üzerinde yinelenir
  • unicodeCodePoint: Python 3 için varsayılan düzen olan Unicode Kod Noktaları üzerinde yinelenir
  • utf16CodeUnit: JavaScript, Java ve .NET için varsayılan düzen olan UTF-16 Kod Birimleri üzerinde yinelenir

stringIndexType İstenen, tercih edilen programlama ortamıyla eşleşiyorsa, alt dize ayıklama standart alt dize veya dilim yöntemleri kullanılarak yapılabilir.

Ayrıca bkz.