Rumah Java javaTutorial ZipInputStream gagal menyahkresentikan nama fail Cina? Bagaimana cara menetapkan watak yang ditetapkan dengan betul?

ZipInputStream gagal menyahkresentikan nama fail Cina? Bagaimana cara menetapkan watak yang ditetapkan dengan betul?

Apr 19, 2025 pm 04:33 PM
linux windows apache sistem pengendalian macos cos red

ZipInputStream gagal menyahkresentikan nama fail Cina? Bagaimana cara menetapkan watak yang ditetapkan dengan betul?

Penyahmampatan ZipInputStream Nama dan Penyelesaian Fail Cina

Ramai pemaju sering menghadapi masalah pengekodan watak apabila menggunakan ZipInputStream untuk menyahpepijat zip pakej termampat yang mengandungi nama fail Cina atau nama folder, yang membawa kepada kegagalan penyahmampatan dan meminta kesilapan seperti "input malformed: 1, panjang: 1". Artikel ini akan menganalisis masalah ini secara mendalam dan menyediakan penyelesaian yang berkesan.

Akar masalahnya ialah set aksara yang ditentukan dalam pembina ZipInputStream tidak digunakan untuk menguraikan pengekodan nama fail di dalam fail, tetapi untuk membaca maklumat direktori pusat fail zip itu sendiri. Pengekodan direktori pusat bergantung kepada persekitaran di mana pakej termampat dibuat dan sistem operasi. Sistem Windows biasanya menggunakan pengekodan GB2312 atau GBK, manakala sistem MACOS dan Linux biasanya menggunakan pengekodan UTF-8.

Oleh itu, jika pakej mampatan zip dibuat di bawah Windows, direktori pusatnya mungkin akan dikodkan menggunakan GBK. Walaupun pengekodan UTF-8 ditentukan dalam kod, ZipInputStream masih gagal menghuraikan direktori pusat GBK yang dikodkan dengan betul, mengakibatkan kegagalan penyahmampatan.

Penyelesaian:

Untuk pakej zip yang dibuat oleh sistem Windows, disarankan untuk menggunakan pengekodan GBK untuk membaca direktori pusat:

 FileInputStream input = FileInputStream baru (TargetPath);
ZipInputStream zipInputStream = zipInputStream baru (BufferedInputStream baru (input), charset.forname ("gbk"));
Salin selepas log masuk

Oleh kerana pengekodan GBK bersesuaian dengan GB2312, kaedah ini juga terpakai kepada direktori pusat pengekodan GB2312.

Penyelesaian silang platform:

Untuk menulis lebih banyak kod serasi rentas platform, Apache Commons memampatkan perpustakaan disyorkan. Perpustakaan ini menyediakan fungsi pemampatan/penyahmampatan yang lebih kuat, yang secara automatik boleh mengendalikan pakej mampatan zip pengekodan yang berbeza, dengan berkesan mengelakkan kegagalan penyahmampatan disebabkan oleh perbezaan set aksara. Ia secara automatik dapat mengesan dan memproses maklumat direktori pusat kod yang berbeza, memudahkan proses pembangunan, dan meningkatkan kebolehpercayaan kod.

Atas ialah kandungan terperinci ZipInputStream gagal menyahkresentikan nama fail Cina? Bagaimana cara menetapkan watak yang ditetapkan dengan betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1666
14
Tutorial PHP
1272
29
Tutorial C#
1251
24
MACOS: Senibina Sistem dan Komponen Teras MACOS: Senibina Sistem dan Komponen Teras Apr 28, 2025 am 12:05 AM

Senibina sistem macOS termasuk lapisan abstraksi perkakasan, teras XNU, i/okit, perkhidmatan teras dan antara muka pengguna Aqua. Komponen teras termasuk proses permulaan, sistem fail APFS, dan SystemIntegrityProtection. Pengoptimuman prestasi dan amalan terbaik melibatkan konfigurasi perkakasan, persediaan perisian, dan kemahiran pembangunan.

Muat turun laman web rasmi aplikasi Exchange Ouyi untuk telefon bimbit Apple Muat turun laman web rasmi aplikasi Exchange Ouyi untuk telefon bimbit Apple Apr 28, 2025 pm 06:57 PM

Aplikasi Exchange OUYI menyokong memuat turun telefon bimbit Apple, lawati laman web rasmi, klik pilihan "Apple Mobile", dapatkan dan pasang di App Store, daftar atau log masuk untuk menjalankan perdagangan cryptocurrency.

MACOS: Ciri utama untuk pengguna Mac MACOS: Ciri utama untuk pengguna Mac Apr 29, 2025 am 12:30 AM

Ciri -ciri utama macOS termasuk kesinambungan, APF, Siri, keselamatan yang kuat, multitasking, dan pengoptimuman prestasi. 1. Kekejaman membolehkan penukaran tugas yang lancar antara MAC dan peranti Apple yang lain. 2. APFS meningkatkan kelajuan akses fail dan perlindungan data. 3.Siri boleh melaksanakan tugas dan mencari maklumat. 4. Fungsi keselamatan seperti FileVault dan Gatekeeper untuk melindungi data. 5. MissionControl dan ruang meningkatkan kecekapan multitasking. 6. Pengoptimuman Prestasi termasuk pembersihan cache, mengoptimumkan item permulaan dan menyimpan kemas kini.

OUYI Laman Web Pintu Masuk OUYI Pintu Terkini Rasmi 2025 OUYI Laman Web Pintu Masuk OUYI Pintu Terkini Rasmi 2025 Apr 28, 2025 pm 07:48 PM

Pilih platform perdagangan yang boleh dipercayai seperti OKEX untuk memastikan akses ke pintu masuk rasmi.

Bagaimana untuk memahami operasi DMA di C? Bagaimana untuk memahami operasi DMA di C? Apr 28, 2025 pm 10:09 PM

DMA di C merujuk kepada DirectMemoryAccess, teknologi akses memori langsung, yang membolehkan peranti perkakasan secara langsung menghantar data ke memori tanpa campur tangan CPU. 1) Operasi DMA sangat bergantung kepada peranti perkakasan dan pemacu, dan kaedah pelaksanaan berbeza dari sistem ke sistem. 2) Akses langsung ke memori boleh membawa risiko keselamatan, dan ketepatan dan keselamatan kod mesti dipastikan. 3) DMA boleh meningkatkan prestasi, tetapi penggunaan yang tidak wajar boleh menyebabkan kemerosotan prestasi sistem. Melalui amalan dan pembelajaran, kita dapat menguasai kemahiran menggunakan DMA dan memaksimumkan keberkesanannya dalam senario seperti penghantaran data berkelajuan tinggi dan pemprosesan isyarat masa nyata.

Bagaimana untuk mengendalikan paparan DPI yang tinggi di C? Bagaimana untuk mengendalikan paparan DPI yang tinggi di C? Apr 28, 2025 pm 09:57 PM

Mengendalikan paparan DPI yang tinggi di C boleh dicapai melalui langkah -langkah berikut: 1) Memahami DPI dan skala, gunakan API Sistem Operasi untuk mendapatkan maklumat DPI dan menyesuaikan output grafik; 2) Mengendalikan keserasian silang platform, gunakan perpustakaan grafik silang platform seperti SDL atau QT; 3) Melaksanakan pengoptimuman prestasi, meningkatkan prestasi melalui cache, pecutan perkakasan, dan pelarasan dinamik tahap butiran; 4) Selesaikan masalah biasa, seperti teks kabur dan elemen antara muka terlalu kecil, dan selesaikan dengan betul menggunakan skala DPI.

Pintu Masuk Laman Web Binance Binance Rasmi Masuk Terkini 2025 Pintu Masuk Laman Web Binance Binance Rasmi Masuk Terkini 2025 Apr 28, 2025 pm 07:54 PM

Lawati laman web rasmi Binance dan semak logo HTTPS dan Green Lock untuk mengelakkan laman web phishing, dan aplikasi rasmi juga boleh diakses dengan selamat.

Apakah pengaturcaraan sistem operasi masa nyata di C? Apakah pengaturcaraan sistem operasi masa nyata di C? Apr 28, 2025 pm 10:15 PM

C berfungsi dengan baik dalam pengaturcaraan sistem operasi masa nyata (RTOS), menyediakan kecekapan pelaksanaan yang cekap dan pengurusan masa yang tepat. 1) C memenuhi keperluan RTO melalui operasi langsung sumber perkakasan dan pengurusan memori yang cekap. 2) Menggunakan ciri berorientasikan objek, C boleh merancang sistem penjadualan tugas yang fleksibel. 3) C menyokong pemprosesan gangguan yang cekap, tetapi peruntukan memori dinamik dan pemprosesan pengecualian mesti dielakkan untuk memastikan masa nyata. 4) Pemrograman templat dan fungsi sebaris membantu dalam pengoptimuman prestasi. 5) Dalam aplikasi praktikal, C boleh digunakan untuk melaksanakan sistem pembalakan yang cekap.

See all articles