Ada pelanggan yang ingin membuat situs webnya versi Rusia. Saya menggunakan pengkodean UTF-8 untuk bagian depan dan belakang, tetapi informasi statis Rusia yang dihasilkan melalui database kacau. Jika ditampilkan menggunakan GB2312, informasi statis Rusia yang dihasilkan melalui database ditampilkan dengan benar, namun teks Rusia di file templat kacau.
Ciri-ciri spesifiknya adalah sebagai berikut:
1. Sadarilah bahasa Rusia normal melalui templat.
2. Informasi statis Rusia yang dihasilkan melalui database backend ditampilkan secara normal di backend tetapi kacau di frontend.
3. Bahasa Inggrisnya biasa saja.
Ekspresi serupa atau berbeda terkait dengan topik
FSO menulis file yang dikodekan UTF-8
Bagaimana FSO dapat menghasilkan file yang dikodekan utf-8?
Apa format pengkodean default file yang dihasilkan oleh FSO?
Cara mengonversi ke pengkodean UTF-8
Masalah dengan FSO menghasilkan halaman web statis
Kode penggunaan FSO untuk menghasilkan file di ASP adalah sebagai berikut:
Copy kode kodenya sebagai berikut:
fungsi buat file (nama file, konten)
set fso=server.CreateObject("scripting.filesystemobject")
setel f1=fso.opentextfile(nama file,2,true,-1)
f1.write(puas)
f1.tutup
atur fso=tidak ada
fungsi akhir
fso.opentextfile(sfilename,2,true,-1) Parameter terakhir -1 menentukan format pengkodean sebagai Unicode. Ketika format pengkodean adalah Unicode, halaman web menampilkan UTF-16 little-endian.
metode OpenTextFile
Membuat file tertentu dan mengembalikan objek TextStream, yang dapat digunakan untuk membaca atau menulis file yang dibuat.
objek.OpenTextFile(nama file[, iomode[, buat[, format]]])
Objek parameter, wajib diisi. Harus berupa nama objek FileSystemObjec atau Folder. Ini adalah fso.
nama file, diperlukan. Ekspresi string yang menentukan file yang akan dibuat. Ini nama file.
iomode, parameter opsional, menunjukkan apakah file digunakan untuk membaca, menulis, atau menambahkan. Nilai defaultnya adalah 1 untuk membaca, 2 untuk menulis, dan 8 untuk menambahkan.
buat, parameter opsional, apakah akan membuat file jika tidak ada, defaultnya salah, jika ingin membuatnya, setel ke benar.
format, parameternya dapat berupa salah satu pengaturan berikut, defaultnya adalah format ASCII, dan tidak ada utf-8 yang kita inginkan:
TristateUseDefault -2 membuka file dalam format default sistem.
TristateTrue -1 membuka file dalam format Unicode.
TristateFalse 0 Buka file dalam format ASCII.
Hanya ada tiga atribut pengkodean FSO. Default sistem adalah Unicode, ASCII, dan tidak ada utf-8 yang kami inginkan. Oleh karena itu, umumnya file yang dihasilkan dengan menggunakan komponen FSO pada sistem Cina berada dalam format pengkodean gb2312.
Solusi satu
Pengkodean GB2312 berisi huruf Rusia. Jika halaman diatur ke GB2312 Cina Sederhana, maka bahasa Rusia dapat ditampilkan secara normal. Namun, karena bahasa Cina default adalah tampilan "Song Ti", bahasa Rusia akan ditampilkan sebagai karakter lebar penuh di "Song Ti", yang jelek, jadi harus menggunakan font asing, seperti "Roma Baru" atau "Arial" dll. Pelanggan Tiongkok dapat berkomunikasi di sana, namun ketika orang Rusia asli menjelajahi web, mereka perlu mengunduh dan menginstal bahasa Mandarin, hal ini tidak ideal dan dapat menyebabkan mereka berhenti menjelajahi web.
Solusi 2
Karena ASP adalah bahasa lama, beberapa fiturnya memiliki dukungan yang sangat buruk terhadap UTF-8. FSO tidak mendukung pembuatan file secara langsung dalam format UTF-8 karena tidak dapat menentukan format file yang diperlukan. Misalnya, jika Anda ingin membuat file dalam format UTF-8, Anda tidak dapat menggunakan objek Scripting.FileSystemObject yang umum digunakan. Kita harus mengubah pemikiran kita dan menggunakan Adodb.Stream Ini adalah bagaimana beberapa program blog saat ini diterapkan, seperti zblog.
Fungsi objek Scripting.FileSystemObject untuk membuat file adalah sebagai berikut:
FileSystemObject.CreateTextFile(nama file[,timpa[,unicode]])
Atribut unicode dijelaskan seperti ini:
Opsional. Nilai Boolean menunjukkan apakah akan membuat file dalam format file Unicode atau ASCII. Nilai ini adalah True jika file dibuat dalam format file Unicode; False jika file dibuat dalam format file ASCII. Jika bagian ini dihilangkan, file ASCII diasumsikan telah dibuat.
Sayangnya, Anda tidak dapat menggunakan fungsi ini untuk membuat file berformat UTF-8.
Gunakan objek ADODB.Stream, lihat di bawah untuk penggunaan:
Copy kode kodenya sebagai berikut:
Setel objStream = Server.CreateObject("ADODB.Stream")
Dengan objStream
.Membuka
.Charset = "utf-8"
.Posisi = objStream.Ukuran
.WriteText=str
.SaveToFile server.mappath("/sitemap.xml"),2
.Menutup
Akhiri Dengan
Setel objStream = Tidak Ada
Lampiran: Pengantar ASCII, Unicode, dan UTF-8
ASCII adalah kumpulan karakter, termasuk huruf besar dan kecil bahasa Inggris, angka, karakter kontrol, dll. Diwakili oleh satu byte dan berkisar antara 0-127.
Karena karakter yang diwakili oleh ASCII sangat terbatas, setiap negara atau wilayah telah mengusulkan kumpulan karakternya sendiri berdasarkan hal ini, misalnya GB2312, yang banyak digunakan di Tiongkok, menyediakan pengkodean untuk karakter Tiongkok dan diwakili oleh dua byte.
Kumpulan karakter ini tidak kompatibel satu sama lain, dan angka yang sama mungkin mewakili karakter yang berbeda, sehingga menyebabkan masalah dalam pertukaran informasi.
Unicode adalah kumpulan karakter yang memetakan semua karakter di dunia ke nomor unik (titik kode), seperti nomor 0x0041 yang sesuai dengan huruf a. Unicode masih dalam pengembangan, dan berisi lebih banyak karakter.
Saat menyimpan karakter yang diwakili oleh Unicode, diperlukan metode pengkodean tertentu, seperti UCS-2, yang menggunakan dua byte untuk mewakili karakter yang dikodekan Unicode. UTF-8 adalah metode pengkodean lain dari kumpulan karakter Unicode. Panjangnya bervariasi, hingga 6 byte, dan karakter kurang dari 127 diwakili oleh satu byte Kompatibilitas yang baik, teks bahasa Inggris dalam pengkodean ASCII dapat diproses sebagai pengkodean UTF-8 tanpa modifikasi, dan digunakan secara luas.