Apakah punca watak Cina bercelaru?
Sebab aksara Cina bercelaru: Kaedah penyahkodan dan kaedah pengekodan tidak konsisten. Aksara Cina yang dikodkan dalam UTF-8 akan ditukar kepada 3 bait, dan jika dikodkan dalam gbk ia akan ditukar kepada 2 bait dan aksara Inggeris yang dikodkan dalam UTF-8 akan ditukar kepada 1 bait, jika dikodkan dalam gbk ia akan; ditukar kepada 1 bait.
Persekitaran pengendalian tutorial ini: sistem Windows 7, komputer Dell G3.
Pertama sekali, mari kita bincangkan tentang apa itu aksara yang kacau-bilau
Saya tidak tahu sama ada sesiapa pernah berfikir ini Rentetan bukan sahaja mengandungi aksara, tetapi juga mengekod maklumat yang menyembunyikannya. Sebagai contoh, String str = "Hello" dalam Java saya fikir ini sebelum ini, string str menyembunyikan pengekodan unicode kaedah pengekodannya atau gbk, iso-8859-1, dsb. Pemahaman ini adalah salah. Aksara hanyalah aksara tanpa sebarang maklumat lain Pemahaman yang betul adalah bahawa rentetan yang dilihat oleh orang dalam fail ialah maklumat digital dalam memori yang dibaca oleh sistem dan akhirnya memaparkannya . Iaitu, apabila anda klik dua kali untuk membuka fail teks, sistem akan membaca dan memaparkan maklumat digital dalam memori Apabila anda menyimpan fail teks, sistem akan mengekod fail dalam kaedah pengekodan yang anda tetapkan ia menjadi ingatan. Jadi aksara yang bercelaru juga adalah beberapa aksara, cuma aksara yang pelik dan tiada "kod".
Kemudian mari kita bincangkan tentang sebab kod bercelaruKita sering melihat penjelasan sebab kod bercelaru di Internet: Kod bercelaru disebabkan oleh ketidakkonsistenan antara kaedah penyahkodan dan pengekodan Ayat ini sendiri Tidak salah, tetapi ayat yang sama itu sendiri hanya meringkaskan kod yang bercelaru, dan ia tidak membantu anda memahami kod yang bercelaru.
Jadi soalan yang ingin kami kemukakan ialah: Mengapa kaedah penyahkodan dan kaedah pengekodan berbeza dan aksara bercelaru muncul.
Berikut ialah tiga kaedah pengekodan utf-8, gbk dan iso-8859-1 sebagai contoh.
Menguji kaedah di atas, hasil cetakan ialah:@Test public void testEncode() throws Exception { String str = "你好",en = "h?h"; System.out.println("========中文字符utf-8======="); byte[] utf8 = str.getBytes(); // 以utf-8方式编码 ,default:utf-8 for (byte b : utf8) { System.out.print(b + "\t"); } System.out.println("\n"+"========英文字符utf-8======="); byte[] utf8_en = en.getBytes(); // 以utf-8方式编码 ,default:utf-8 for (byte b : utf8_en) { System.out.print(b + "\t"); } System.out.println("\n"+"========中文字符gbk========="); byte[] gbk = str.getBytes("gbk"); for (byte b : gbk) { System.out.print(b + "\t"); } System.out.println("\n"+"========英文字符gbk========="); byte[] gbk_en = en.getBytes("gbk"); for (byte b : gbk_en) { System.out.print(b + "\t"); } String s = new String(utf8,"utf-8"); String s1 = new String(utf8,"gbk"); System.out.println("\n"+s + "====gbk:" + s1); }
========中文字符utf-8======= -28 -67 -96 -27 -91 -67 ========英文字符utf-8======= 104 63 104 ========中文字符gbk========= -60 -29 -70 -61 ========英文字符gbk========= 104 63 104 你好====gbk:浣犲ソ ------------------------------------------------------------------------------------
a Aksara Cina Jika dikodkan dengan utf-8, ia akan ditukar kepada 3 bait Jika dikodkan dengan gbk, ia akan ditukar kepada 1 bait.
Daripada baris terakhir pencetakan digabungkan dengan 29-31 baris kod, kita dapat melihat bahawa jika tatasusunan bait utf8 dinyahkodkan dalam utf-8, akan ada tiada aksara bercelaru, dan ia akan tetap menjadi "Hello", dan jika ia dinyahkod dalam mod gbk, tiga aksara bercelaru muncul Mengapakah terdapat 3 aksara dan bukannya 2?Seterusnya, mari kita bincangkan tentang iso-8859-1 Pengekodan ini digunakan pada siri Inggeris, yang bermaksud ia tidak boleh mewakili bahasa Cina (jika anda ingin menggunakannya, anda mesti bergantung pada pengekodan lain yang serasi. dengan kaedah pengekodan iso-8859-1). kaedah, semua aksara Inggeris ditetapkan dengan 1 perwakilan bytecode, kecuali pengekodan unicode). Cetak hasil
Penjelasan 63 =》?, semua bahasa Cina dianggap?, jadi apabila kod ini dilaksanakan: byte[] bs = "You OK".getBytes ("iso-8859-1");Maklumat telah hilang.
Lakukan String str = new String(bs, "mana-mana set aksara"); str tidak lagi bersamaan dengan "Hello", tetapi dua tanda tanya??. Jadi dalam kucing jantan kita sering menemui aksara Cina yang berubah menjadi rentetan panjang ??????, yang merupakan asal usul ini.
@Test public void testISO() throws Exception { String str = "你好"; byte[] bs = str.getBytes("iso-8859-1"); for (byte b : bs) { System.out.println(b); } System.out.println(new String(bs,"iso-8859-1")); System.out.println(new String(bs,"utf-8")); System.out.println(new String(bs,"gbk")); System.out.println(new String(bs,"unicode")); }
63 63 ?? ?? ?? 㼿
Setelah berkata begitu banyak, ramai orang mungkin bertanya mengapa begitu banyak kaedah pengekodan digunakan. Bukankah mustahil untuk menyatukannya ke dalam utf-8 untuk mewakili semua aksara?
Pengekodan bukan sahaja mengenai sama ada ia boleh mewakili sebarang aksara, tetapi juga mengenai penghantaran dan storan.
1. UTF-8 sememangnya boleh mewakili hampir semua aksara yang diketahui. Seperti yang dinyatakan sebelum ini, hanya 3 bait mewakili aksara Cina dalam pengekodan UTF-8, yang jelas mengambil ruang dan tidak kondusif untuk penghantaran dan penyimpanan (penghantaran dan penyimpanan dilakukan dalam binari) 2 bait mewakili satu aksara dalam cara yang paling menjimatkan ruang, seperti iso-8859-1. Tetapi terdapat bukan sahaja aksara Inggeris di dunia, tetapi juga watak dari pelbagai wilayah dan negara. Jadi bilangan aksara mestilah lebih besar daripada 2 hingga kuasa ke-8.Jadi dengan menggabungkan dua perkara di atas, banyak kaedah pengekodan akan muncul secara semula jadi.
Ketahui peraturan pelbagai kaedah pengekodan: https://jingyan.baidu.com/article/020278118741e91bcd9ce566.html
Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Pengajaran Pengaturcaraan! !
Atas ialah kandungan terperinci Apakah punca watak Cina bercelaru?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Masalah bercelaru Cina Linux adalah masalah biasa apabila menggunakan set aksara Cina dan pengekodan. Watak bercelaru mungkin disebabkan oleh tetapan pengekodan fail yang salah, tempat sistem tidak dipasang atau ditetapkan, dan ralat konfigurasi paparan terminal, dsb. Artikel ini akan memperkenalkan beberapa penyelesaian biasa dan memberikan contoh kod khusus. 1. Periksa tetapan pengekodan fail Gunakan arahan fail untuk melihat pengekodan fail Gunakan perintah fail dalam terminal untuk melihat pengekodan fail: nama fail-fail jika terdapat "charset".

Penyelesaian untuk permulaan tomcat yang kacau: 1. Ubah suai fail konfigurasi Tomcat 2. Ubah suai bahasa sistem 3. Ubah suai pengekodan tetingkap baris arahan 5. Semak pengekodan projek; fail; 7 , cuba penyelesaian lain. Pengenalan terperinci: 1. Ubah suai fail konfigurasi conf Tomcat, buka direktori conf Tomcat, cari fail "logging.properties", dsb.

Dalam sistem Windows 10, aksara bercelaru adalah perkara biasa. Sebab di sebalik ini selalunya ialah sistem pengendalian tidak menyediakan sokongan lalai untuk beberapa set aksara, atau terdapat ralat dalam pilihan set aksara yang ditetapkan. Untuk menetapkan ubat yang betul, kami akan menganalisis prosedur operasi sebenar secara terperinci di bawah. Bagaimana untuk menyelesaikan kod kacau Windows 10 1. Buka tetapan dan cari "Masa dan Bahasa" 2. Kemudian cari "Bahasa" 3. Cari "Urus Tetapan Bahasa" 4. Klik "Tukar Tetapan Wilayah Sistem" di sini 5. Semak seperti yang ditunjukkan dan klik Hanya pastikan.

Kaedah untuk menyelesaikan masalah bahasa Cina PHPDompdf PHPDompdf ialah alat untuk menukar dokumen HTML kepada fail PDF Ia berkuasa dan mudah digunakan. Walau bagaimanapun, semasa memproses kandungan Cina, anda kadangkala menghadapi masalah aksara Cina yang bercelaru. Artikel ini akan memperkenalkan beberapa kaedah untuk menyelesaikan masalah aksara Cina bercelaru dalam PHPDompdf dan memberikan contoh kod khusus. 1. Apabila menggunakan fail fon untuk memproses kandungan Cina, masalah biasa ialah Dompdf tidak menyokong kandungan Cina secara lalai.

Apabila ramai pengguna menggunakan komputer, mereka akan mendapati terdapat banyak fail dengan akhiran dll, tetapi ramai pengguna tidak tahu bagaimana untuk membuka fail tersebut Pengguna yang ingin tahu, sila lihat butiran berikut Tutorial~Cara membuka dan edit fail dll: 1. Muat turun perisian yang dipanggil "exescope" dan muat turun dan pasangnya. 2. Kemudian klik kanan fail dll dan pilih "Edit sumber dengan exescope". 3. Kemudian klik "OK" dalam kotak gesaan ralat timbul. 4. Kemudian pada panel kanan, klik tanda "+" di hadapan setiap kumpulan untuk melihat kandungan yang terkandung di dalamnya. 5. Klik pada fail dll yang anda ingin lihat, kemudian klik "Fail" dan pilih "Eksport". 6. Kemudian anda boleh

Sesetengah rakan ingin membuka pad nota dan mendapati pad nota win11 mereka bercelaru dan tidak tahu apa yang perlu dilakukan. Sebenarnya, secara amnya kita hanya perlu mengubah suai wilayah dan bahasa. Win11 Notepad bercelaru: Langkah pertama, gunakan fungsi carian, cari dan buka "Panel Kawalan". atas Kad. Langkah keempat ialah mengklik "Tukar Tetapan Serantau Sistem" di bawah Langkah kelima ialah menukar tetapan serantau sistem semasa kepada "Bahasa Cina (Ringkas, China)" dan klik "OK" untuk menyimpan.

Penyelesaian untuk failzilla aksara yang kacau termasuk: 1. Semak tetapan pengekodan 2. Semak fail itu sendiri 4. Cuba alat pemindahan lain 6. Semak masalah rangkaian; Dapatkan sokongan teknikal. Untuk menyelesaikan masalah watak bercelaru FileZilla, anda perlu bermula dari pelbagai aspek, menyiasat punca masalah secara beransur-ansur, dan mengambil langkah yang sepadan untuk membaikinya.

Penyebab dan penyelesaian biasa untuk aksara Cina yang kacau dalam pemasangan MySQL MySQL ialah sistem pengurusan pangkalan data hubungan yang biasa digunakan, tetapi anda mungkin menghadapi masalah aksara Cina yang kacau semasa digunakan, yang membawa masalah kepada pembangun dan pentadbir sistem. Masalah aksara Cina bercelaru terutamanya disebabkan oleh tetapan set aksara yang salah, set aksara yang tidak konsisten antara pelayan pangkalan data dan pelanggan, dsb. Artikel ini akan memperkenalkan secara terperinci punca dan penyelesaian biasa aksara Cina yang kacau dalam pemasangan MySQL untuk membantu semua orang menyelesaikan masalah ini dengan lebih baik. 1. Sebab biasa: tetapan set watak