Aracılığıyla paylaş


Bir Unicode sunucu ve olmayan bir-Unicode istemci arasındaki veri dönüşümü yönetme

Bu konu, sunucu tarafı veri depolama Unicode'dur, ancak veriyle etkileşime istemci tarafı uygulama belirli bir kod sayfa kullanan karakter verilerinin bütünlüğünü korumak açıklamaktadır.

Veri girişi

Unicode olmayan veri istemciden Unicode, herhangi bir istemciden herhangi veri sunucuda depolanacak gönderildiğinde kod sayfa aşağıdaki koşullardan biri doğruysa, doğru depolanabilir:

  • Karakter dizeleri sunucuya bir uzak yordam çağrısı (RPC) parametre olarak gönderilir.

  • Dize sabitleri, büyük harfle N'ye öncesindeIstemci tarafı uygulama Unicode ile uyumlu olmasına bakılmaksızın, bu gereklidir.N önekini SQL Server dize için veritabanının varsayılan harmanlama karşılık gelen kod sayfa dönüştürülür. Bu kod sayfasında bulunmayan tüm karakter kaybolacaktır.

Veri alma

Istemci uygulaması Unicode etkin değil ve Unicode arabellekleri verileri alır, bir istemci yalnızca almak istemci makinenin kod sayfa tarafından temsil edilen veri değiştirme olanağınız olur.ASCII olmayan veriler üzerinde kod sayfasının kod sayfa dönüştürme bağlıdır ancak ASCII karakterleri sunumunu tüm kod sayfaları aynı olduğundan bu ASCII karakterler her zaman alınabilir, anlamına gelir.

Örneğin, şu anda yalnızca ABD'de (ABD'de) çalıştıran, ancak Japonca için dağıtılan bir uygulama'i olduğunu varsayalım.Çünkü SQL Server veritabanı bilgisi Unicode, hem ingilizce ve Japonca metin uygulama henüz metni Unicode olarak çalışılabilecek değiştirilmedi rağmen aynı tabloda depolanabilir. As long as the application complies with one of the two previous options, Japanese users can use the non-Unicode application to input and retrieve Japanese data, and U.S.users can input and retrieve English data.Her iki kullanıcı kümesi tüm veriler bozulmadan veritabanının aynı sütunda depolanan ve Unicode olarak gösterilir.Bu durumda, tam veri span üreten bir Unicode özellikli raporlama uygulama bildiriyor. küme dağıtılabilir.Ancak, uygulama mevcut olmayan karakterler görüntüleyemediğinden, kod sayfa (1252) ingilizce kullanıcıların Japonca satırları görüntüleyemezsiniz.

Bu durum, birbirlerinin kayıtları görüntülemek iki kullanıcı grubu yoksa kabul edilebilir olabilir.Bir uygulamanın kullanıcı kayıtlarını tek bir kod sayfa tarafından temsil edilen metin ile değiştirmek veya görüntülemek çalıştırabilmesi gerekir, ancak uygulamayı değiştirmek üzere Unicode kullanın böylece hiçbir seçenek yok.

Web-based Applications

Istemci tarafındaki program Web tabanlı veya bir Active Server Pages (ASP) sayfasına bağlanan, istemci taraflı HTML sayfa hem de sunucu-tarafı ASP sayfa meta veriler özellikleri vardır.Sunucu, ASP alt yordamı ve istemci tarayıcısına arasında karakter dizelerinin nasıl dönüştürüleceğini belirtmek için bu özellikleri yapılması gerekir.

Istemci tarafı HTML sayfasında, META özniteliği belirtmelidir karakteri küme veri istemcinin kodlama düzeni için bir CHAR belirterek dönüştürüleceğini küme kodu.Örneğin, aşağıdaki HTML sayfasına yönlendirir istemci belirterek, karakter verilerinin 950 (Çince Geleneksel) kod sayfa dönüştürme big5 olarak CHARSET Kod. karakter kümesi görmek için küme META özniteliği, kodları için gidin. Microsoft Web sitesini.

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=big5">
<!-- 
     
-->
</HEAD>
<BODY>
<!--
   body
-->
</BODY>
</HTML>

Sunucu-tarafı ASP sayfasında ASP Web uygulamasını istemci tarayıcısına kullanarak hangi kod sayfa söyleyin gerekir.Belirtebileceğiniz Session.CodePage özellik veya @ CodePage yönergesini. Bu yöntem dönüştürme verileri sunucudan istemci işleyeceğini ve her ikisi de GET ve istemci istekleri POST.Aşağıdaki örneklerde, her iki yöntem de, dönüştürme için ve, bir istemcinin, kod sayfa belirlemek için kullanılır 950 (Çince Geleneksel).

<%@ Language=VBScript codepage=950 %>
<%  Session.CodePage=950 %>

Ve son olarak, N harfi herhangi bir dize hazır bilgi öneki gerekir