Deskripsi menyimpan UTF-8 data dalam SQL Server

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 232580 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

RINGKASAN

Beberapa aplikasi (terutama mereka yang berbasis Web) harus berurusan dengan Unicode data yang dikodekan dengan metode pengkodean UTF-8. SQL Server 7.0 dan SQL Server 2000 menggunakan Unicode berbeda encoding (UCS-2) dan tidak mengenali UTF-8 sebagai karakter yang valid data. Artikel ini membahas beberapa pilihan untuk mengatasi situasi ini.

INFORMASI LEBIH LANJUT

Unicode data dapat dikodekan dalam berbagai cara. UTF-8 dan UCS-2 adalah dua cara yang umum untuk menyimpan sedikit pola-pola yang mewakili Unicode karakter. Microsoft Windows NT, SQL Server, Jawa, COM, dan pengandar SQL Server ODBC dan penyedia OLEDB semua internal mewakili Unicode data sebagai UCS-2.

Pilihan untuk menggunakan SQL Server 7.0 atau SQL Server 2000 sebagai backend server untuk sebuah aplikasi yang mengirim dan menerima data Unicode yang dikodekan sebagai UTF-8 termasuk:
  1. Jika aplikasi Anda menggunakan Active Server Pages (ASP) dan Anda menggunakan Internet Information Server (IIS) 5.0 dan Microsoft Windows 2000, Anda dapat menambahkan "< % Session.Codepage=65001% mengatakan" untuk skrip ASP server-side. Ini memerintahkan IIS untuk mengkonversi semua string yang dihasilkan secara dinamis (contoh: Response.Write) dari UCS-2 ke UTF-8 secara otomatis sebelum mengirim mereka ke klien.

    Jika Anda tidak ingin mengaktifkan sesi, Anda dapat menggunakan sisi server direktif "< % @ CodePage = 65001% mengatakan".

    Data UTF-8 yang dikirim dari klien ke server melalui GET atau POST adalah juga menjadi UCS-2 secara otomatis. Properti Session.Codepage adalah metode yang direkomendasikan untuk menangani data UTF-8 di dalam aplikasi web. Pengaturan Codepage ini ini tidak tersedia pada IIS 4.0 dan Windows NT 4.0. Untuk informasi tambahan, lihat artikel berikut pada Basis Pengetahuan Microsoft:
    254313 Pesan kesalahan: Kesalahan halaman Server aktif 'ASP 0203' kode tidak sah
  2. Menerjemahkan ke dan dari UCS-2 atau UTF-8 yang sesuai dalam aplikasi. Contoh kode untuk jenis konversi terletak di Unicode Consortium situs:

    FTP://FTP.Unicode.org/public/PROGRAMS/CVTUTF/
    Deskripsi tingkat tinggi algoritma untuk mengkonversi UCS-2 ke UTF-8 dapat ditemukan dalam dokumen Internet permintaan untuk komentar RFC2279.

    Pada Windows NT atau Windows 2000, Anda dapat menggunakan fungsi Win32 MultiByteToWideChar dan WideCharToMultiByte untuk mengkonversi UTF-8 ke dan dari UCS-2 melalui CP_UTF8 konstan (65001) sebagai parameter ke fungsi.
  3. Mengubah aplikasi untuk menggunakan UCS-2 bukan UTF-8 encoding.
  4. Menyimpan data aktual UTF-8 di server menggunakan kolom ganda/VARBINARY/gambar. Menyimpan UTF-8 data pada SQL Server berarti bahwa Anda tidak dapat menggunakan SQL Server untuk menyortir atau menemukan rentang nilai-nilai ini seolah-olah data data karakter yang valid. Jenis operasi pada kolom yang berisi data UTF-8 yang akan memberikan hasil yang diharapkan termasuk "ORDER BY", lebih besar-daripada "mengatakan" dan kurang-dari "<" comparisons,="" and="" the="" built-in="" sql="" server="" string="" manipulation="" functions="" such="" as=""></">

    Namun, kesetaraan perbandingan, akan bekerja selama string dibandingkan setara di tingkat byte. Catatan bahwa jika Anda menyimpan UTF-8 data dalam SQL Server Anda tidak boleh menggunakan kolom karakter (CHAR/NCHAR/VARCHAR dan sebagainya). UTF-8 adalah tidak sah karakter data ke SQL Server, dan menyimpan data non-karakter dalam karakter kolom Anda berisiko menghadapi masalah seperti isu-isu yang dibahas di artikel Basis Pengetahuan Microsoft berikut:
    155723 INF: SQL Server pemotongan tali DBCS
    234748 PRB: SQL Server ODBC Driver mengubah bahasa peristiwa untuk Unicode
    Jika Anda sedang mempertimbangkan pilihan ini, perlu diingat bahwa jika Anda merasa perlu untuk mengakses data UTF-8 yang disimpan di dalam SQL Server dari aplikasi apapun selain Web browser (misalnya, dari non-aplikasi berbasis Web ODBC), Anda akan perlu untuk melakukan konversi UTF-8 dari UCS-2 dalam aplikasi ini sebagai ODBC, OLEDB, COM, VB, Win32 API panggilan, dan c runtime manipulasi fungsi tidak bekerja dengan data UTF-8 string. Ini bergerak beban terjemahan untuk aplikasi yang berbeda.
  5. Jika kebutuhan Anda tidak termasuk kebutuhan untuk menyimpan data dari kombinasi bahasa yang tidak dapat puas dengan satu kode halaman, Anda mungkin tidak perlu menggunakan Unicode.
Dukungan Unicode diperkenalkan ke SQL Server dimulai dengan SQL Server 7.0. Karena 6,5 SQL Server tidak mendukung penyimpanan Unicode data, satu-satunya pilihan untuk SQL Server 6,5 diuraikan dalam langkah 4 dan langkah 5.

Properti

ID Artikel: 232580 - Kajian Terakhir: 20 September 2011 - Revisi: 2.0
Berlaku bagi:
  • 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 Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Kata kunci: 
kbinfo kbmt KB232580 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:232580

Berikan Masukan

 

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