Saat menerapkan program layanan web hari ini, servlet yang memperoleh data dari halaman mengalami masalah yang kacau. Di servlet, saya menambahkan teks request.setCharacterEncoding("GB2312");
Temukan informasi online, sebagai berikut: JAVA adalah pengkodean Unicode, Anda terlebih dahulu mengonversinya ke ISO8859-1, lalu mengonversinya ke GBK atau GB2312.
kode java
Ini orang Cina!
Ada cara yang lebih mudah, yaitu mengatur konversi pengkodean langsung di server. TOMCAT5.0.28 digunakan.
Temukan file SERVER.XML di direktori ../Tomcat 5.0/conf, buka dengan WordPad, dan atur sebagai berikut:
Cukup tambahkan atribut di dalamnya, URIEncoding="GBK"
Tes telah berlalu dan selesai. Lalu apa peran yang dimainkan oleh kalimat request.setCharacterEncoding("GB2312") . Jika tidak dapat menyelesaikan masalah yang berantakan, peran apa yang kita gunakan untuk memainkannya?
(1) Halaman JSP dalam bahasa Mandarin, tetapi ketika Anda melihatnya, halamannya kacau:
Solusinya adalah dengan mengkodekan halaman JSP. Karena masalah pengkodean ketika JSP diubah menjadi file Java, beberapa server menggunakan ISO-8859-1 secara default. Jika bahasa Mandarin langsung dimasukkan ke dalam JSP, JSP memperlakukannya sebagai ISO8859 -. 1 jelas merupakan masalah. Kami dapat mengonfirmasi hal ini dengan melihat file perantara Java yang dihasilkan oleh Jasper.
(2) Saat menggunakan objek Permintaan untuk mendapatkan kode karakter Cina yang dikirimkan oleh pelanggan, akan muncul karakter kacau:
Solusinya adalah dengan mengkonfigurasi filter yaitu filter Servelet. Kodenya adalah sebagai berikut:
permintaan.setCharacterEncoding("GBK");
// Melewati kontrol ke filter berikutnya
chain.doFilter(permintaan, tanggapan);
}
<pemetaan-filter></pemetaan-filter>
<filter-name></filter-name>Setel Pengkodean Karakter
<url-pattern></url-pattern>/*
Ada juga pemrosesan informasi yang mengandung karakter Cina. Kode pemrosesannya adalah:
Solusinya adalah:
1) Buka file server.xml Tomcat, temukan bloknya, dan tambahkan baris berikut:
Pengkodean URI=”GBK”
Lengkapnya harus sebagai berikut:
(4) Ada karakter Mandarin di halaman JSP dan karakter Mandarin di tombol, tetapi saat melihat halaman melalui server, muncul karakter kacau:
Solusinya adalah: Pertama, teks pesan yang dilokalkan tidak boleh disertakan langsung dalam file JSP, tetapi teks tersebut harus diperoleh dari Resource Bundle melalui tag <bean:message>. Anda harus meletakkan teks berbahasa Mandarin Anda di file Application.properties. File ini ditempatkan di bawah WEB-INF/classes/*. properti. Konten di dalamnya harus berupa nama = "nama" age = "age", lalu saya meletakkan file ini di bawah WEB-INF/classes/properties/, lalu menyandikannya sesuai dengan file Application.properties, dan membuat file sumber daya berbahasa Mandarin, dengan asumsi namanya adalah Application_cn.properties. Perintah native2ascii disediakan di JDK, yang dapat mewujudkan konversi pengkodean karakter. Temukan direktori tempat Anda menempatkan file Application.properties di lingkungan DOS. Jalankan perintah di lingkungan DOS. File sumber daya Cina Application_cn.properties yang dikodekan dalam GBK akan dihasilkan: native2ascii ?encoding gbk Application.properties Application_cn.properties perintah di atas. File Application_cn.properties dengan konten berikut akan dibuat di masa mendatang: name=u59d3u540d age=u5e74u9f84, dikonfigurasi di Struts-config.xml: <message-resources parameter="properties.Application_cn"></message-resources>. Pada titik ini, lebih dari setengahnya pada dasarnya sudah selesai. Kemudian Anda harus menulis di halaman JSP. Untuk label namanya, Anda perlu menulis <bean:message key=""name""> di halaman tersebut akan muncul nama Cina, begitu pula umurnya, dan karakter Cina pada tombol juga diproses dengan cara yang sama.
(5) Kode yang ditulis ke database kacau:
Solusi : Konfigurasikan filter yaitu filter Servelet Kodenya sama dengan yang kedua kalinya.
Jika Anda terhubung langsung ke database melalui JDBC, kode konfigurasinya adalah sebagai berikut: jdbc:mysql://localhost:3306/workshopdb?useUnicode=true&characterEncoding=GBK, untuk memastikan kode di database tidak kacau.
Jika Anda menghubungkan melalui sumber data, Anda tidak dapat menulisnya seperti ini. Pertama, Anda harus menulisnya di file konfigurasi. Tempat untuk mengkonfigurasi sumber data di Tomcat 5.0.19 ada di bawah C:Tomcat 5.0confCatalinalocalhost yang saya buat Proyeknya adalah bengkel, dan direktori tempatnya berada di bawah webapp. File konfigurasi workshop.xml adalah sebagai berikut:
<resource name="jdbc/WorkshopDB"></resource>auth="Container"
ketik = "javax.sql.DataSource" />
<resourceparams name="jdbc/WorkshopDB"></resourceparams>
<parameter></parameter>
<nama></nama>pabrik
<value></value>org.apache.commons.dbcp.BasicDataSourceFactory
<parameter></parameter>
<nama></nama>maxAktif
<nilai></nilai>100
<parameter></parameter>
<nama></nama>maxIdle
<nilai></nilai>30
<parameter></parameter>
<name></name>maxTunggu
<nilai></nilai>10.000
<parameter></parameter>
<nama></nama>nama pengguna
<nilai></nilai>akar
<parameter></parameter>
<nama></nama>kata sandi
<nilai></nilai>
<parameter></parameter>
<nama></nama>namaKelasdriver
<nilai></nilai>com.mysql.jdbc.Driver
<parameter></parameter>
<nama></nama>url
<nilai></nilai>
Berikan perhatian khusus pada tempat yang dicetak tebal. Ini berbeda dengan tautan langsung ke JDBC. Jika Anda mengkonfigurasinya dengan benar, saat Anda memasukkan bahasa Mandarin, itu akan menjadi bahasa Mandarin di database juga membutuhkan baris kode ini. Perlu dicatat bahwa beberapa staf meja depan menggunakan Dreamver untuk menulis kode. Saat menulis Formulir, mereka mengubahnya menjadi jsp. Ada satu hal yang perlu diperhatikan, yaitu penyerahan Tindakan di Dreamver permintaan, dan Anda perlu mengirimkannya, karena ada dua metode pengiriman JSP: POST dan GET, tetapi kode yang dikirimkan oleh kedua metode ini masih sangat berbeda dalam hal pengkodean. </bean:pesan>< /bean:pesan>