Dışarıya aktar (0) Yazdır
Tümünü Genişlet
Bu makale makine tarafından çevrilmiştir. Orijinal metni görmek için imlecinizi makaledeki cümlelerin üzerine getirin. Daha Fazla Bilgi.
Çeviri
Original

Özel Durum Eşlemeleri ve Sıralama Kuralları

Büyük/küçük harf eşleştirmelerini, alfabetik ve öğelerin sıralaması kuralları kültür kültür değişir. Bu çeşitlerini unutmayın ve bunlar kültüre bağlı olarak değişen dize işlemlerinin sonuçlarını neden olduğunu anlamak gerekir.

Türk Alfabesi benzersiz büyük/küçük harf eşleştirme kurallarını nasıl büyük ve küçük harf eşleştirmelerini göstermek bile bunların çoğu aynı harf kullandığınızda dilden dile değişir. Çoğu Latin harfler, "i" karakteri de (u + 0069) karakteri küçük sürümü "I" (u + 0049). Bununla birlikte, Türk Alfabesi hem büyük ve küçük harf "ı" iki sürümü vardır: biri bir nokta ve bir nokta olmadan. Türkçe, karakteri "I" (u + 0049) büyük "ı" karakter sürümü olarak kabul edilir (u + 0131), oysa "İ" (u + 0130) büyük "i" karakter sürümü olarak kabul edilir (u + 0069). Sonucunda, büyük küçük harf duyarsız dize karşılaştırma "i" karakter (u + 0069) ve "I" (u + 0049) Bu başarılı çoğu kültürde Türkçe (Türkiye), kültür için belirlenmiş başarısız tr-tr için.

Not Not

Az-Latn-az belirlenmiş Azerbaijani kültür (Azerbaycan, Latin), ayrıca bu durumda eşleme kuralını kullanır.

Aşağıdaki kod örneği gösterir nasıl duyarlı bir sonucu String.Compare "Dosya" ve "dosya" dizeleri gerçekleştirilen işlemi kültüre bağlı olarak farklılık gösterir. Karşılaştırma verir true , Thread.CurrentThread.CurrentCulture kültür için tasarlanmış en-US İngilizce (ABD), özelliğini ayarlayın. Karşılaştırma verir false geçerli kültür Türkçe (Türkiye) ayarlarsanız, tr-tr belirlenmiş.


using System;
using System.Globalization;
using System.Threading;

public class Example
{
    public static void Main()
    {
       // Set the CurrentCulture property to English in the U.S.
       Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
       Console.WriteLine("Culture = {0}",   
                         Thread.CurrentThread.CurrentCulture.DisplayName);
       Console.WriteLine("(file == FILE) = {0}\n", (string.Compare("file", 
                         "FILE", true) == 0));

       // Set the CurrentCulture property to Turkish in Turkey.
       Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR");
       Console.WriteLine("Culture = {0}",
                         Thread.CurrentThread.CurrentCulture.DisplayName);
       Console.WriteLine("(file == FILE) = {0}", (string.Compare("file", 
                         "FILE", true) == 0));
    }
}
// The example displays the following output:
//      Culture = English (United States)
//      (file == FILE) = True
//
//      Culture = Turkish (Turkey)
//      (file == FILE) = False


Türk ve Azerbaijani alfabelerde kullanılan benzersiz büyük/küçük harf eşlemelere ek olarak, diğer özel durum eşlemeleri ve dize işlemleri belirleneceğine karar verirken bilmeniz gereken sıralama kuralları vardır. Harfler ASCII aralığında (Unicode 0000 Unicode 007F aracılığıyla) dokuz kültür, iki harfli çifti içeren büyük küçük harf duyarlı karşılaştırma, örneğin, sonucu kullandığı String.Compare, büyük/küçük harf karışık olduğunda eşit değerlendirmez. Bu kültürler şunlardır:

  • Hırvatça (Hırvatistan), hr-hr

  • Çekçe (Çek Cumhuriyeti), cs-cz

  • Slovakça (Slovenya), sk-sk

  • Danimarkaca (Danimarka), da-dk

  • Norveççe (Bokmål, Norveç) nb-no

  • Norveççe (Nynorsk, Norveç) nn no

  • Macarca (Macaristan), hu-hu

  • Vietnam dili (Vietnam), vn VI

  • İspanyolca (İspanya, Geleneksel Sıralama), es-ES_tradnl

Örneğin, Danca büyük küçük harf duyarlı karşılaştırma iki harfli çifti "aA" ve "aa" değil değerlendirilir eşit. Vietnam alfabesinde, büyük küçük harf duyarlı bir karşılaştırma iki harfli çifti "nG" ve "ng" eşit dikkate alınmaz. Bu kurallar, pratikte var olduğunu bilmeniz gerekir, ancak burada sabit dizeler veya tanımlayıcıları seyrek olduğundan bu çifti bir kültüre duyarlı karşılaştırma sorunları oluşturur bir durum içine çalıştırmak kullanılmaz.

Harfler ASCII aralığı içinde altı kültürler, farklı sıralama kuralları ancak standart kasa kuralları vardır. Bu kültürler şunlardır:

  • Estonca (Estonya), et-ee

  • Fince (Finlandiya), fi-FI

  • Macarca (Macaristan, teknik sıralama düzeni), hu-HU_technl

  • Litvanca (Litvanya), lt-lt

  • İsveççe (Finlandiya), ZF-FI

  • İsveç dili (İsveç) sv-se

Örneğin, "v" harfi gibi "w" İsveç alfabesinde sıralar. Uygulama kodundaki sıralama işlemleri eşitlik karşılaştırmaları daha az sıklıkta kullanılan eğilimindedir ve dolayısıyla bu sorunlara neden olabilir.

Özel durum eşlemeleri ve sıralama kurallarını ASCII aralığının dışında bir ek 35 kültürler vardır. Bu kurallar genellikle belirli bir Kültürden tarafından kullanılan harfler sınırlandırılan. Bu nedenle, bunlar sorunlara neden olasılığı düşüktür.

Özel ayrıntılarını case eşlemeleri ve özel kültürler için uygulanan kuralları sıralama Unicode Standard at görmek için Unicode giriş sayfası.

Topluluk İçeriği

Show:
© 2014 Microsoft