Makale numarası: 153449 - Son Gözden Geçirme: 17 Kasım 2003 Pazartesi - Gözden geçirme: 3.0

BILGI: SQL Server kod sayfaları ve AutoAnsiToOem davranışı

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bu makalede, SQL Server ve nasıl ekleme ya da veri almakla AutoAnsiToOem ayarı devre dışı bırakma veya etkinleştirme etkilenen kod sayfaları açıklanmaktadır.

Bir kod sayfası olarak da bilinen bir karakter kümesi, 256 büyük ve küçük harfler, sayılar ve simgeler kümesidir. Ilk 128 değerlerin yazdırılabilir karakterleri tüm karakter kümesi (seçenek için de aynıdır. Son olarak 128 karaktere bazen dile özgü karakterler da adlandırılır, kümesi kümesi arasında farklılık gösterir. Varsayılan kod sayfasını 4.21a SQL Server kod sayfası ayarını 850 (çok dilli) ' dir. SQL Server 6. 0'ın ve 6.5'için ISO 8859-1 varsayılandır (Latin 1 veya ANSI) kod sayfası 1252 olarak da bilinir. SQL Server kod sayfası, her iki türlerini sonuçları karakter karşılaştırmaları gerektiren sorgular için SQL Server'ı verir ve veritabanınızın SQL Server'ı tanıdığı karakterleri belirler.

SQL Server kod sayfası işletim sisteminin kod sayfasından farklı olduğunu unutmayın. Windows NT ve Windows 95 işletim sistemlerinde, bir <a0>ANSI</a0> kod sayfası ve bir OEM kod sayfası vardır. ANSI ve OEM kod sayfaları ülke ayarlarına bağlıdır. ABD ingilizce Windows NT ve Windows 95, varsayılan ANSI kod sayfası 1252 ve OEM kod sayfası 437 (ABD Ingilizce). MS-DOS, yalnızca bir OEM kod sayfası da vardır. Ingilizce (ABD) için bu kod sayfası 437 varsayılan olarak değil. Windows 3.x için MS-DOS bir uzantısı olarak çalışan ve bir varsayılan ANSI kod sayfası 1252 vardır. Windows NT Konsolu'nu dahili unicode; ancak, bu özel bir durumdur; bir MS-DOS kod sayfası çalıştırıyor olmanız görünmesi gerekir. Bu nedenle, Windows NT altında konsol uygulamaları bilgisayarın OEM kod sayfası etkin bir şekilde çalıştırın. Ancak, ANSI kod sayfası yerine, OEM kod sayfası ve bu nedenle, bir AnsiToOem çevrilmesi için konsol uygulaması geçirilen parametreler bulunan herhangi bir komut satırı parametreleri düzgün SQL Server'a geçirilecek konsol uygulaması gerekmektedir.

Veri eklendiğinde veya alınan kayıt defteri girdisi AutoAnsiToOem dönüştürme varsayılan davranışını denetler. AutoAnsiToOem etkinleştirilmişse, dönüştürme, aşağıdaki durumlarda etkinleştirilir:
  • OEM sunucularına ANSI istemcileri
  • OEM istemcilerine ANSI sunucuları
Dönüştürme AutoAnsiToOem devre dışı bırakılırsa, tüm bağlantılar için devre dışı bırakılır.

Tüm Windows tabanlı istemcilerin (örneğin, ISQL/w, SQL Enterprise Manager, aktarım Yöneticisi, SQL Yöneticisi ve SQL Nesne Yöneticisi), ANSI istemcilerini kabul edilir. MS-DOS veya konsol tabanlı uygulamaları ISQL ve BCP OEM istemcilerini kabul edilir. Bunun istisnası, veri aktarım seçeneği, nesne bir OEM istemcisi gibi davranır Yöneticisi, ' dir.

SQL Server kod sayfası 1250 thru 1259 ile bir ANSI sunucu olarak düşünülür ve SQL Server herhangi diğer kod sayfasının (örneğin, 850 veya 437) bir OEM sunucu olarak düşünülür.

OEM kod sayfası karakter çevirmek için kullanılan geçerli OEM kod sayfası istemci işletim sistemi üzerinde bağlıdır. Örneğin, AutoAnsiToOem seçeneği etkinken, bir ANSI sunucu ASCII karakter 165 ([ASCII 165]) ASCII 190 ([ASCII bir OEM kod sayfası 850 istemciyle seçerken 165]) ve ASCII 157 ([ASCII 165]) bir OEM kod sayfası 437 istemciyle seçerken dönüştürülür.

Daha fazla bilgi

Aşağıdaki tabloda, bu makalenin geri kalanında için genel bir bakış sağlar:
Bu tabloyu kapaBu tabloyu aç
BölümüAçıklama
CSQL Server'ın kod sayfas?n? belirleme
bEtkinleştirme veya AutoAnsiToOem devre dışı bırakma
cKaydedilen verileri geçerliliği denetleme hakkında
dBir karakter bir kod sayfası bir başka olduğunda neyin olur.
eGenişletilmiş karakterler bir ABD klavye ile girme
fWindows NT ve Windows 95 OEM kod sayfasını değiştirmek için
gMS-DOS ve Windows 3.x OEM kod sayfası değiştirme
hIstemci önerileri için tutarlı veri
İMS-DOS isql.exe örnekleri
jWin32 bcp.exe örnekleri
kIsqlw.exe örnekleri
lYöneticisi örnekleri Aktar
mODBC ve ANSI-OEM dönüşümlerini
nMS Query ODBC istemci örnekleri
oDiğer ilgili kod sayfası makaleleri

PART A: nasıl SQL Server'ın kod sayfas?n? belirleme

Saklı yordamın sp_helpsort SQL Server'ın sıralama düzenini ve karakter kümesini bulmak için kullanılır.

KıSıM B Etkinleştirme veya AutoAnsiToOem devre dışı bırakma

Kayıt defteri girdisi AutoAnsiToOem etkin veya istemci konfigürasyonu yardımcı programında otomatik ANSI OEM onay kutusunu seçerek devre dışı. Sürüm 6.0 ve 6. 5'i varsayılan olarak etkindir, ancak SQL Server'da 4.21a OEM otomatik ANSı'YE varsayılan olarak devre dışıdır.

PART C: nasıl kaydedilen verileri geçerliliği denetleme

Transact SQL dizesi işlevi ASCII(char_expr) sunucuda gerçekten kaydedilen belirlemek için kullanılır. Bu işlevi, karakter bir ifadede en soldaki karakteri ASCII kodu değerini gösterir. Örneğin, "[ASCII 177]" karakteri 850 bir sunucuya kaydedilen varsa, ISQL/w verileri seçme olabilir (AutoAnsiToOem açıkken) "[ASCII 177]" karakteri Göster'i veya "[ASCII 241]" (AutoAnsiToOem kapalı olduğunda). Ancak, ASCII(<column_name>) seçmek size gösterir (olan "[ASCII 177]" 850 kod sayfasına) 241.

PART D: ne kullanılamıyor üzerinde başka bir kod sayfası karakter olduğunda, olur

Karakter dönüştürme oluşur ve bir karakterin bir kod sayfasında diğerine kullanılamaz, kod sayfası, en yakın eşdeğer karakteri dönüştürüldü. Örneğin, üzerinde kod sayfası 437 ("Alfa") ASCII 224 97("a") ANSI kod sayfasına dönüştürülür. Kod sayfası 437 dönüştürdüğünüzde, 97("a") alırsınız. Şimdi özgün 224("alpha") kayıp bir sorunu olmasıdır. Bu, büyük olasılıkla hatalı veriler, sunucunuzda aşağıdaki iki örnek olmuyor gibi kaydedilecek neden olabilir:

Örnek 1:

Bir ANSI istemciden veri ekleme ve sizin AutoAnsiToOem seçeneği etkinse, bir OEM sunucusu var. Eklediğiniz karakterin kodu sayfaların ikisini de geçerliyse, doğru veri kaydedilir. ANSI, ancak değil de, OEM karakter geçerlidir, ancak doğru verileri kaydedilmeyecek.

Örnek 2:

Bir <a0>OEM</a0> istemcisinden bir ANSI sunucu veri eklemek ve AutoAnsiToOem seçeneği etkinleştirilir. Eklediğiniz karakterin kodu sayfaların ikisini de geçerliyse, doğru veri kaydedilir. OEM ve ANSI olmayan karakter geçerlidir, ancak sonra doğru veri kaydedilmeyecek.


PART E: Bir ABD klavye ile karakterler genişletilmiş giriliyor

NUMLOCK'UN basın ve klavyenin sağ tarafındaki sayısal tuş takımını kullanın. ANSI genişletilmiş karakterler girmek için <a0></a0>, ALT tuşunu basılı tutun ve sonra da bir sıfırla (0) önce karakter ASCII kodunu yazın. OEM genişletilmiş karakterler girmek için <a0></a0>, ALT tuşunu basılı tutun ve karakter yalnızca ASCII kodunu yazın. Örneğin, girin +, ALT basılı tutun ve 0165, yazın (istemcinin OEM kod sayfası 437 ise) 157 yazın veya (istemcinin OEM kod sayfası 850) 190 yazın.

KıSıM F: Windows NT ve Windows 95 OEM kod sayfasını değiştirmek nasıl

Windows NT 3.51 için tercih edilen yöntemi Windows NT'de OEM kod sayfası değiştirmek Denetim Masası uluslararası dilinde değiştirmektir. Windows NT 4. 0'da veya Windows 95 OEM kod sayfası, başlangıç kurulumu sırasında seçilir.

Ayrıca, The OEM kod sayfası OEMCP ve OEMHAL (yalnızca Windows NT) değiştirerek değiştirilebilir kayıt defteri değerlerini aşağıda belirtilen konumda:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentlControlSet\Control\Nls\CodePage
				
bu değişiklikler Windows NT veya Windows 95 yeniden başlatmadan sonra etkinleşir.

Hangi OEM kod sayfası ANSI ve OEMHAL değeri çevirmek için Uzatılmış karakterler komut görüntüsünü denetler OEMCP değerini denetler. Olası değerler için bu kayıt defteri değerlerinden bazıları şunlardır:

Bu tabloyu kapaBu tabloyu aç
OEM kod sayfasıOEMCP değeriOEMHAL değeri
437437Vgaoem.fon
850850vga850.fon

Bu ayar OEMCP kayıt defteri değerini değiştirmenin yanı sıra, bir komut isteminde, dile özgü karakterler görünümünü denetleyen OEMHAL değeri de değiştirir.

PART G: Nasıl OEM kod sayfası'nın MS-DOS ve Windows 3.x Değiştir

MS-DOS için kod sayfasını değiştirmek için <a0></a0>, Bölüm 6, MS-DOS Programming başvuru 6.0 Ulusal dil desteği bakın. MS-DOS kod sayfası değiştirildikten sonra ANSI-OEM çeviri tabloları, OEM dönüştürme için ANSI değiştirmek için Windows Kur programını çalıştırmalısınız.

PART H: İstemci önerileri için tutarlı veri

Aşağıdaki öneriler, SQL Server kod sayfası yerine göre genellikle hatalı verilerin nedenini olan istemci kod sayfası SQL Server'da depolanan verilerin saklandığını sağlamaya yardımcı olur.

MS-DOS istemcilerinin: Since MS-DOS, yalnızca bir OEM kod sayfası ve hiçbir ANSI kod sayfası varsa, hiçbir dönüşümleri yapılır. SQL Server kod sayfası istemci kod sayfası eşleşecek şekilde ayarlanmalıdır; bu nedenle sunucu ile istemci OEM kod sayfası istemci her zaman veri depolar.

OEM ve ANSI istemcilerinin: SQL Server çalıştıran bir bilgisayarda, ANSI kod sayfası kullanmıyorsa, istemci OEM kod sayfası SQL Server kod sayfası eşleşen ve AutoAnsiToOem dönüştürme etkinleştirmek için değiştirin. ANSI kod sayfası SQL Server çalıştıran bir bilgisayarda kullanıyorsanız, AutoAnsiToOem dönüştürme etkinleştirmeniz yeterlidir.

Yukarıdaki önermelerden özel durumlar şunlardır:


  • Bir ANSI SQL Server'a alma Win32 Bcp.exe istemcisi için istemci kod sayfası verileri ile oluşturulmuş olan kod sayfas?n? eşleşecek şekilde değiştirin.
  • Bir ANSI SQL Server'dan verme Win32 Bcp.exe istemcisi için istemci kod sayfası verme sonuçları içine alınan SQL Server kod sayfası değiştirin. Örneğin, bir SQL Server kod sayfası 850 almak için <a0></a0>, istemci kod sayfası ayarını 850 değiştirin.
  • SQL Server yönetici aktarım için ANSI kod sayfası hem bir SQL Server'ı kullanmıyorsanız, 4.2 x ve 6.0 istemcisi, istemci kod sayfası SQL Server, ANSI olmayan kod sayfasının kod sayfası eşleşecek şekilde değiştirin. Aşağıdaki tablo bu özetler:

    Bu tabloyu kapaBu tabloyu aç
    Kaynağı SQL Server kod sayfasıHedef SQL Server kod sayfasıIstemci kod sayfası kullanmak için
    ANSI437437
    850ANSI850
    850850850
    437850*

    * OEM kod sayfaları arasında transfer ederken, bunun yerine iki aktarımları olun:
    OEM1 to ANSI followed by ANSI to OEM2.
    					

PART ı: MS-DOS isql.exe örnekleri

Aşağıdaki örneklerin her tablo, çeşitli noktalarda karakterinin bir ondalık eşdeğeri gösterir.

Ekle ve, SELECT + 437 OEM kod sayfası 437 bir kod ve içine MS-DOS isql.exe istemciyle ile SQL Server sayfa karakter.

Bu tabloyu kapaBu tabloyu aç
OperationIstemcideIstemci dönüştürmeSunucuda
EKLEME157157 *157
SELECT157157 *157

* Değeri, MS-DOS istemcilerinin AnsiToOem dönüştürmeleri gerçekleştirmek sonra hiçbir zaman 157, değişir.

PART J: Win32 bcp.exe örnekleri

Örnek 1:

EXPORT ve Al'ın + içine bir SQL Server 850 kod sayfası 850 OEM kod sayfası karakter Win32 Bcp.exe istemciyle.

Bu tabloyu kapaBu tabloyu aç
OperationIstemcideIstemci dönüştürmeSunucuda
ALMA190190 *190
VERME190190 *190

* Hem istemci hem de sunucu OEM olduğundan, dönüştürme gerçekleştirilir.

Örnek 2:

Al, + karakter Win32 Bcp.exe istemciyle bir 437 OEM kod sayfası ve kod sayfası 437, bir ANSI kod sayfası SQL Server içinde oluşturulmuş veriler.

Bu tabloyu kapaBu tabloyu aç
OperationIstemcideIstemci dönüştürmeSunucuda
ALMA157165 *165

* + ANSI eşdeğer dönüştürülür.

Örnek 3:

EXPORT 165 karakter Win32 Bcp.exe istemcisinin bir 437 OEM kod sayfası, bir ANSI kod sayfasından daha sonra bir SQL Server 437 kod sayfasına almak için SQL Server ile.

Bu tabloyu kapaBu tabloyu aç
OperationSunucudaIstemci dönüştürmeIstemcide
VERME165157 *157

* + OEM eşdeğer geri dönüştürülür.

Örnek 4:

EXPORT'ın + 1252 OEM kod sayfası, gelen bir ANSI karakter Win32 Bcp.exe istemciyle <a1>Sayfa</a1> SQL Server'ı daha sonra aynı SQL Server'a almak için kod.

Bu tabloyu kapaBu tabloyu aç
OperationSunucudaIstemci dönüştürmeIstemcide
VERME165165 *165

* ANSI kod sayfası istemcide OEM kod sayfası eşleştiğinden dönüştürme oluşur.

PART K: Isqlw.exe örnekleri

Örnek 1:

SQL Server, INSERT ve SELECT Win16 veya Win32 Isqlw.exe istemcisinin içine bir ANSI kod sayfası.

Bu tabloyu kapaBu tabloyu aç
OperationIstemcideIstemci dönüştürmeSunucuda
EKLEME165165 *165
SELECT165165 *165

* Hem istemci hem de sunucu ANSI olduğundan, dönüştürme gerçekleştirilir.

Örnek 2:

INSERT ve SELECT, Win16 veya Win32 ISQLW.EXE 437 kod sayfasına SQL Server OEM kod sayfası 437 istemciyle.

Bu tabloyu kapaBu tabloyu aç
OperationIstemcideIstemci dönüştürmeSunucuda
EKLEME165157 *157
SELECT157165 **165

* [ASCII 165] OEM eşdeğer dönüştürülür.
** [ASCII 165] eşdeğer ANSI dönüştürülür.

PART L: Aktarım Yöneticisi örnekleri

Örnek 1:

SQL Server aktarım Yöneticisi 6.0 iki ANSI kod sayfası SQL Server'lar arasında.

Bu tabloyu kapaBu tabloyu aç
Kaynak sunucuKaynak sunucudan istemci dönüştürmeIstemci dest dönüştürme. SunucuHedef sunucu
165165 *165 *165

* Hem istemci hem de sunucu ANSI olduğundan, dönüştürme gerçekleştirilir.

Örnek 2:

SQL Server aktarım Yöneticisi 6.0 OEM kod sayfası 437, SQL Server 437 kod sayfasından ANSI olan <a1>Sayfa</a1> SQL Server kod.

Bu tabloyu kapaBu tabloyu aç
Kaynak sunucuKaynak sunucudan istemci dönüştürmeIstemci dest dönüştürme. SunucuHedef sunucu
157165 *165 **165

* [ASCII 165] eşdeğer ANSI dönüştürülür.
** Hem istemci hem de sunucu ANSI olduğundan dönüştürme gerçekleştirilir.

Örnek 3:

SQL Server aktarım Yöneticisi 6.0 ile bir ansı'den OEM kod sayfası 850, sayfaya bir SQL Server 850 kod sayfası SQL Server kod.

Bu tabloyu kapaBu tabloyu aç
Kaynak sunucuKaynak sunucudan istemci dönüştürmeIstemci dest dönüştürme. SunucuHedef sunucu
165165 *190 **190

* Hem istemci hem de sunucu ANSI olduğundan dönüştürme gerçekleştirilir.
** [ASCII 165] OEM eşdeğer dönüştürülür.

Örnek 4:

SQL Server aktarım Yöneticisi 6.0 OEM kod sayfası 850, bir SQL Server 850 kod sayfası 850 kod sayfası SQL Server ile.

Bu tabloyu kapaBu tabloyu aç
Kaynak sunucuKaynak sunucudan istemci dönüştürmeIstemci dest dönüştürme. SunucuHedef sunucu
190165 *190 **190

* [ASCII 165] eşdeğer ANSI dönüştürülür.
** [ASCII 165] OEM eşdeğer dönüştürülür.

PART M: ODBC ve ANSI-OEM dönüşümlerini

Tüm ODBC (GUI) ve konsol uygulamaları) ANSI istemcilerinin ODBC belirtimine göre tanımlanan istemcileridir. Çeviri, yalnızca SQL Server ANSI olmayan kod sayfasıyla ortaya çıkar. ODBC istemcilerinin üç çeviri seçenekleri vardır: hiçbir çeviri, OEM kod sayfası ile çevirme veya ODBC kod sayfası Çeviricisi'ni kullanın. Istemcinin OEM kod sayfası sunucuda depolanan belirler, çeviri OEM kod sayfası ile aynı DB-Library ANSI olarak, OEM dönüştürme çalışır. Bu seçenek, veri kaynağı kur iletişim kutusundaki ANSI karakter onay kutusunu ConvertOEM seçerek seçilir. ODBC kod sayfası Çeviricisi'ni kullanmak için <a0></a0>, veri kaynağı kur iletişim kutusundaki <a1>Çeviri</a1> bölümündeki seçim düğmesini, sonra da MS kod sayfası Çeviricisi'ni tıklatın ve kullanmak için kod sayfası Çeviricisi'ı seçin. Bu seçenek, ANSI karakter onay kutusu için <a2>Dönüştür</a2> OEM geçersiz kılar ve seçilen, yerine OEM kod sayfası Çeviricisi göre OEM çeviri yapar. Tüm ODBC istemcileridir ANSI istemcilerinin ve çevirisini yalnızca ANSI olmayan kod sayfasıyla SQLservers ortaya çıkar.

PART N: MS Query ODBC istemci örnekleri

Örnek 1:

MS Query istemciden, ANSI kod sayfası SQL Server'ın SELECT'i tıklatın.

Bu tabloyu kapaBu tabloyu aç
SunucudaIstemci dönüştürmeIstemcide
165165 *165

* Hem istemci hem de sunucu ANSI olduğundan, çeviri olsun, seçilen dönüştürme gerçekleştirilir.

Örnek 2:

OEM kod sayfası 437 MS Query istemciyle, SELECT ve bir SQL Server 437 kod sayfasından Dönüştür OEM ANSI karakter, etkin.

Bu tabloyu kapaBu tabloyu aç
SunucudaIstemci dönüştürmeIstemcide
157165 *165

* Eşdeğer ANSI dönüştürülür.

Örnek 3:

Etkin MS Query istemciyle OEM kod sayfası 437 (OEM ANSI karakter dönüştürme ve Windows Latin 1 (1252) SELECT / 850 (çok dilde-CVE-2006-Latin 1) MS kod sayfası Çeviricisi gelen 850 kod sayfası SQL Server.

Bu tabloyu kapaBu tabloyu aç
SunucudaIstemci dönüştürmeIstemcide
190165 *165

* 850 OEM kod sayfası Çeviricisi yüzünden kullanarak eşdeğer ANSI dönüştürülür.

PART O: Diğer ilgili kod sayfası makaleleri

Kod sayfaları ve AnsiToOem seçeneği hakkında daha fazla bilgi için lütfen aşağıdaki Microsoft Knowledge Base'deki makaleleri bakın:

75435 - Windows, Code Pages, and Character Sets  (http://support.microsoft.com/kb/75435/EN-US/ )
152980 - BUG: AnsiToOem Check Box Does Not Work in 6.0 Transfer Manager  (http://support.microsoft.com/kb/152980/EN-US/ )

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 4.21a Standard Edition
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
Anahtar Kelimeler: 
kbmt kbinfo kbusage KB153449 KbMttr
Otomatik TercümeOtomatik Tercüme
Ö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:153449  (http://support.microsoft.com/kb/153449/en-us/ )
Retired KB ArticleKullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.