SQL Server'da UTF-8 veri saklama açıklaması

Makale çevirileri Makale çevirileri
Makale numarası: 232580 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Özet

Bazı uygulamalar (özellikle Web tabanlı olan), UTF-8 kodlama yöntemi ile kodlanmış Unicode verileri çalışılabilecek gerekir. SQL Server 7.0 ve SQL Server 2000 farklı bir Unicode (UCS-2) kodlama kullanmak ve UTF-8, geçerli bir karakter verisi olarak tanımaz. Bu makalede, bu durumla ilgili bazı seçenekler açıklanır.

Daha fazla bilgi

Unicode verileri farklı şekillerde kodlanmış. UCS-2 ve UTF-8, Unicode karakteri temsil eden bit desenleri depolamak için iki yaygın yöntemlerdir. Dahili olarak Microsoft Windows NT, SQL Server, Java, COM ve SQL Server ODBC sürücüsü ve OLEDB Sağlayıcısı tüm Unicode verilerini UCS-2 ' temsil eder.

SQL Server 7.0 veya SQL Server 2000 gönderir ve UTF-8 olarak kodlanmış Unicode veri alan bir uygulama için bir arka uç sunucusu olarak kullanmaya yönelik seçenekleri içerir:
  1. Uygulama Active Server Pages (ASP) kullanır ve ınternet ınformation Server (IIS) 5.0 ve Microsoft Windows 2000 kullanıyorsanız "< Session.Codepage=65001 % >" için ASP sunucu tarafı komut ekleyebilirsiniz. Bu, tüm dinamik olarak oluşturulan dizeleri dönüştürmek için ııS'YI bildirir (örnek: Response.Write) UCS-2'için otomatik olarak istemciye göndermeden önce UTF-8.

    Alternatif olarak oturumların etkinleştirmek istiyorsanız, sunucu tarafı yönergesini kullanabilirsiniz "< % @ CodePage 65001 % = >".

    UTF-8 ile GET veya POST sunucuya istemciden gönderilen veriler de otomatik olarak UCS-2'ye dönüştürülür. Session.Codepage özelliği bir <a0>web</a0> uygulamasında, UTF-8 verileri işlemek için önerilen yöntemdir. Bu kod sayfası ayarını, IIS 4.0 ve Windows NT 4.0 üzerinde kullanılamaz. Ek bilgi için Microsoft Knowledge Base'de aşağıdaki makaleye bakın:
    254313Hata iletisi: Active Server Pages hatası 'ASP 0203' geçersiz bir kodu
  2. Uygulamanın gerektiği için ve UCS-2 veya UTF-8 çevirir. Bu tür bir dönüştürme için örnek kod, Unicode Consortium'ın sitesinde bulunur:

    ftp://ftp.unicode.org/Public/PROGRAMS/CVTUTF/
    UCS-2, UTF-8'e dönüştürmek için kullanılan algoritma üst düzey BIR açıklamasını RFC2279 ınternet isteği Yorumlar'ı için belge içinde bulunabilir.

    Windows NT veya Windows 2000, UTF-8 için ve UCS-2 sabit CP_UTF8 ileterek dönüştürmek MultiByteToWideChar ve WideCharToMultiByte Win32 işlevlerini kullanabilir (65001) işlevleri için ilk parametre.
  3. Uygulamayı UCS-2, UTF-8 kodlama yerine kullanacak şekilde değiştirin.
  4. Gerçek UTF-8 veri, RESIM/VARBıNARY/BıNARY sütunları kullanarak sunucuda depolanacak. SQL Server'da UTF-8 veri depolamak, SQL Server sıralamak veya geçerli bir karakter veri verileri gibi bu değerlerin aralıkları bulmak için kullanabileceğiniz yok anlamına gelir. "ORDER BY", büyük beklenen sonuçları dahil döndürecektir değil UTF-8 veri içeren sütunlar, - den işlemlerinin türlerini ">"ve küçüktür"<" karşılaştırmalar ve yerleşik SQL Server dize düzenleme işlevlerini SUBSTRING() gibi.

    Ancak, karşılaştırılan dizelerin bir bayt düzeyinde eşdeğer olduğu sürece eşitlik karşılaştırmalar, çalışır. SQL Server'da UTF-8 veri saklarsanız, karakter sütunları (CHAR/NCHAR/VARCHAR ve benzeri) kullanmaması gerektiğini unutmayın. UTF-8, geçerli bir karakter veri SQL Server'a ve karakter uzunluğundaki verileri aşağıdaki Microsoft Bilgi Bankası makalelerinde açıklanan sorunları gibi sorunlar oluşuyor risk karakter sütunlarındaki depolayarak değildir:
    155723BILGI: SQL Server kesme DBCS dizesinin
    234748SORUN: SQL Server ODBC sürücüsü dil olayları Unicode'a dönüştürür
    Bu seçenek, Web tarayıcısından (örneğin, bir Web tabanlı olmayan ODBC uygulaması) dışındaki herhangi bir uygulamadan SQL Server içinde depolanan UTF-8 verilere gereksiniminiz varsa, bir dönüştürme UTF-8 UCS-2 ODBC, OLEDB, COM, bu uygulamadaki yapmak gerekeceğini unutmayın düşünüyorsanız, Win32 API çağrıları, VB ve C çalışma zamanı işlevlerini UTF-8 veriyle çalışmak için düzenleme dize. Bu işlem yükünü çeviri, farklı bir uygulamaya taşır.
  5. Gereksinimlerinizi tek bir kod sayfası tarafından karşılanamayan dillerin bileşiminden veri saklamak için gerekli eklemezseniz, Unicode kullanmanız gerekmeyebilir.
Unicode desteği için SQL Server, SQL Server 7.0 ile başlayan kullanıma sunulmuştur. SQL Server 6.5, Unicode verilerini depolama desteklemediği için SQL Server 6.5 yalnızca seçenekleri, adım 4 ve 5. adım özetlenmiştir.

Özellikler

Makale numarası: 232580 - Last Review: 7 Aralık 2005 Çarşamba - Gözden geçirme: 4.4
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL 2005 Server Workgroup
Anahtar Kelimeler: 
kbmt kbinfo KB232580 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:232580

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com