Udostępnij przez


Konwersja danych między stron kodowych klient i serwer zarządzania

W tym temacie opisano sposób zachowania integralność danych znakowych, gdy baza danych nie przechowuje danych znakowych przy użyciu typy danych standardu Unicode i współpracujących z danych aplikacji po stronie klient są również nie Unicode-aware.W tej sytuacji, strona kodowa przechowywania danych i strony kodowej klient-aplikacji powinny być takie same.Jeśli te strony kodowe są różne, konwersja występuje między klient i serwer może spowodować utratę niektórych znaków.

Wyłączanie funkcji AutoTranslate SQL Server sterownika ODBC, aby wstawić dane zdefiniowane przez inną strona kodowa z serwera nie jest obsługiwany.Ponadto, nawet jeśli AutoTranslate jest wyłączone, nie zabrania strona kodowa translacji zdarzeń języka SQL.Wynik to że jeśli klient i baza danych strona kodowas nie pasują do siebie, strona kodowa tłumaczenia ogólnie stosowana jest dowolny ciąg znaków Unicode nie jest wysyłany z serwera lub.

Jeśli to możliwe, należy unikać tej sytuacji.Najlepszy wybór dla serwera konkretnych stron kodu jest komunikować się tylko z klientów przy użyciu tej samej strona kodowa.Wybór drugie najlepsze jest inną strona kodowa, która ma prawie tego samego zestaw znaków.Na przykład strona kodowa 1252 (Latin1) i strony kodowej 850 (Latin1 wielojęzycznych) można przechowywać prawie taki sam zestaw znaków, tak, że większość znaków w tych dwóch stron kodowych można konwertować strony kodowej jednego do drugiego bez utraty danych.

Jeśli musi komunikować się z klientami przy użyciu różne strony kodowe, obsługiwane rozwiązaniem jest przechowywanie danych w kolumnach Unicode.Jeśli jeden z tych opcji nie jest możliwe, alternatywą jest przechowywanie danych w kolumnach binarnego za pomocą binary, varbinary, lub varbinary(max) typów danych.Jednak dane binarne mogą tylko sortowanie i porównywane w porządku binarnego.Dzięki temu mniej elastyczne niż danych znakowych.