Catatan: Semua informasi teks yang disimpan di komputer menyimpan karakter yang kita tahu (karakter Cina atau bahasa Inggris) dalam tabel pengkodean tertentu (0, 1, 0, 1). Proses biner dari karakter ke penyimpanan komputer adalah penyandian, dan proses dari membaca biner ke teks disebut decoding. Ada banyak tabel pengkodean yang berbeda untuk pengkodean karakter, jadi jika format pengkodean dan format decoding bukan tabel kode yang sama, kode kacau akan muncul. Untuk menghindari kode kacau, Anda perlu menggunakan tabel kode yang sama saat menyimpan dan membaca.
Sering ada kode yang kacau dalam pemrograman web Java. Sekarang izinkan saya menjelaskan secara rinci cara mengaturnya untuk menghindari kode yang kacau.
1 Pengkodean Halaman Web
Saat menulis halaman web, Anda perlu menentukan format pengkodean halaman web dan menggunakan <meta http-equiv = "tipe konten" content = "text/html; charset = utf-8"> untuk menentukannya. Pada saat ini, ketika browser membaca atau mengirimkan permintaan, data akan disimpan atau dikirim dalam format pengkodean yang ditentukan. Ini dia dalam bentuk UTF-8.
Misalnya cuplikan kode:
<form action="/Pro1/bb" method="post"> Username: <input type="text" name="username" ><br> Gender: Male<input type="radio" name="gender" value="male">Female<input type="radio" name="gender" value="female"><br> Favorite color: <br> Red<input type="checkbox" name="color" value="red"> Green<input type="checkbox" name="color" value="green"> Blue<input type="checkbox" name="color" value="blue"> <br>Countries from <select name="country"> <option value="China">China</option> <option value="US">US</option> <option value="Japan">Japan</option> </select> <br> <input type="submit" value="submit"> <input type = "reset" value = "reset"> </form>
2 Data permintaan baca backend
Dalam servlet dari Java Web, untuk mendapatkan data yang diminta, data biner yang dikirim perlu diterjemahkan sesuai dengan tabel kode yang sesuai untuk mendapatkan string yang dapat dibaca manusia yang sesuai. Dalam contoh ini, metode POST digunakan, jadi saat memproses permintaan POST, Anda perlu mengatur format pengkodean sebelum mendapatkan parameter permintaan Cina, jika tidak kode yang kacau akan terjadi. Karena server menggunakan tabel pengkodean ISO-8859-1 secara default untuk decoding.
Tentu saja, jika Anda ingin mengeluarkan karakter Cina dalam output, Anda juga perlu menggunakan pengkodean karakter terpadu. Ini UTF-8, kodenya adalah sebagai berikut
public void dopost (permintaan httpservletRequest, respons httpservletResponse) melempar servletException, ioException {request.setcharacterencoding ("UTF-8"); response.setContentType ("Teks/html; charset = utf-8"); Printwriter out = response.getWriter (); String username = request.getParameter ("nama pengguna"); String gender = request.getParameter ("gender"); String [] colors = request.getParameterValues ("color"); String country = request.getParameter ("country"); out.println ("<! Doctype html>"); out.println ("<head> <title> test servlet </iteme> </head>"); out.println ("<body>"); out.print ("<h1> Berikut ini adalah input Anda </h1>"); out.print ("<p>"); out.print ("Nama pengguna Anda:"+nama pengguna+"<br>"); out.print ("jenis kelamin Anda:"+jenis kelamin+"<br>"); out.print ("Warna favorit Anda:"); untuk (string cr: color) {out.print (cr+""); } out.print ("<br>"); out.print ("negara Anda:"+negara+"<br>"); out.print ("</p>"); out.println ("</body>"); out.println ("</html>"); }Catatan: request.setcharacterencoding ("UTF-8"); Berikut ini hanya valid untuk konten entitas yang meminta. Parameter permintaan pos disimpan di entitas permintaan, dan parameter permintaan metode GET ditempatkan setelah URL dan mulai dengan tanda tanya, dan '&' menghubungkan beberapa parameter. Jadi, jika Anda ingin mendapatkan parameter metode GET, Anda perlu menggunakan decoding manual, atau menggunakan filter.
Metode decoding manual, demi kesederhanaan, hanya decod gender, dan dalam penggunaan aktual, setiap parameter perlu diterjemahkan: gender string = string baru (req.getparameter ("gender"). Getbytes ("iso-8859-1"), "UTF-8");
Pada titik ini, fenomena karakter Cina kacau di sisi web dan server dapat diselesaikan dengan sempurna. Ingat satu hal: Berkaca -kacangan di satu sisi adalah karena pengkodean dan decoding menggunakan tabel penyandian yang berbeda. Anda harus menggunakan tabel penyandian yang sama untuk menyelesaikan masalah.
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.