Udostępnij za pośrednictwem


Konwersja danych między serwerem Unicode i innych niż klient Unicode — Zarządzanie

W tym temacie opisano sposób w celu zachowania spójności danych znakowych podczas przechowywania danych po stronie serwera jest w trybie Unicode, ale strona kodowa określonych korzysta z aplikacji po stronie klient, który współdziała z danymi.

Dane wejściowe

Gdy dane nie obsługujących kodu Unicode są przesyłane z klient mają być przechowywane na serwerze w standardzie Unicode, dane z dowolnego klient z dowolnej strona kodowa mogą być przechowywane poprawnie, jeśli spełniony jest jeden z następujących warunków:

  • Ciągi znaków są wysyłane do serwera jako parametry zdalnego wywołania procedury (RPC, Remote Procedure Call).

  • Stałe w postaci ciągów umieszcza są poprzedzone wielką literą.Jest to wymagane, niezależnie od tego, czy aplikacja klient jest obsługą standardu Unicode.Bez prefiksu N SQL Server będzie można przekonwertować ciąg na strona kodowa, która odpowiada domyślnym sortowaniem w bazie danych. Wszystkie znaki, nie można odnaleźć na tej stronie kod zostaną utracone.

Pobieranie danych

Jeśli aplikacja klienta nie jest włączone Unicode i pobiera dane do buforów nie obsługujących kodu Unicode, klient tylko będzie można pobrać lub modyfikować dane, które mogą być reprezentowane przez strona kodowa komputera klienta.Oznacza to że zawsze można pobrać zestawu znaków ASCII, ponieważ reprezentacja znaków ASCII jest takie same we wszystkich stron kodowych, podczas gdy wszystkie dane inne niż ASCII, zależy od konwersji kodu — aby kod — strona.

Załóżmy na przykład aplikacja, która jest aktualnie uruchomiona tylko w Stanach Zjednoczonych (USA), ale jest wdrażana w Japonii.Ponieważ SQL Server Baza danych jest obsługą standardu Unicode, zarówno tekst angielski i japoński mogą być przechowywane w tych samych tabel, nawet jeśli aplikacja nie została jeszcze zmodyfikowana z tekstu w formacie Unicode. 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.Wszystkie dane z obu zestawów użytkowników są przechowywane w stanie nienaruszonym w tym samym kolumna bazy danych i są reprezentowane w formacie Unicode.W takim przypadku Unicode włączone raportowanie aplikacji, która generuje raporty tego zakresu, można wdrożyć kompletny zestaw danych.Jednak angielską użytkownicy nie mogą wyświetlać japońskich wierszy, ponieważ aplikacja nie może wyświetlić znaki, których nie istnieją w ich strona kodowa (1252).

Taka sytuacja może być dopuszczalne, jeśli dwie grupy użytkowników, nie trzeba wyświetlać rekordy sobie nawzajem.Jeśli użytkownik aplikacji musi być w stanie służy do wyświetlania lub modyfikowania rekordów zawierających tekst, który nie może być reprezentowany przez strona kodowa pojedynczego, to nie alternatywne, ale zmodyfikować aplikację, dzięki czemu można go użyć standardu Unicode.

Aplikacje oparte na sieci Web

Jeśli program po stronie klient jest oparty na sieci Web lub łączy do strona Active Server Pages (ASP), nie istnieją metadane specyfikacji strona HTML po stronie klient i strona ASP po stronie serwera.Specyfikacje te muszą być wykonane, aby określić, jak ciągi znaków ma być konwertowany między serwerem i aparat ASP w przeglądarce klient.

strona HTML po stronie klient atrybut META należy określić, że dane zestawu znaków ma być konwertowany do kodowania systemu klient, określając kod zestaw znaków.Na przykład na następującej stronie HTML powoduje, że klient do konwersji danych znakowych na 950 (chiński tradycyjny) strona kodowa, określając big5 jak CHARSET Kod. Aby wyświetlić kody dla atrybut META zestaw znaków, przejdź do tej Witryny firmy Microsoft w sieci Web.

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

Na stronie ASP po stronie serwera użytkownik musi poinstruować aplikacji ASP w sieci Web strona kodowa, jakiego używa przeglądarki klient.Można określić Session.CodePage Właściwość lub dyrektywy @ CodePage. Metody te będą obsługiwać konwersji danych z serwera do klient, a także zarówno GET i POST żądania klientów.W poniższych przykładach obie metody są używane do określania konwersji do i ze strona kodowa klient, który jest 950 (Chiński tradycyjny).

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

I wreszcie, należy pamiętać o prefiksu wszelkie literały ciągów znaków literą N.