


ZipInputStream gagal menyahkresentikan nama fail Cina? Bagaimana cara menetapkan watak yang ditetapkan dengan betul?
Apr 19, 2025 pm 04:33 PMPenyahmampatan 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"));
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!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

Clothoff.io
Penyingkiran pakaian AI

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

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

cronisusedforpreciseschedulingonalways-onsystems, manakalaCronensureSperiodictasksrunonsystemsthataren'tcontinuouslypowered, suchaslaptops; 1.usecronforexacttiming (cth

ToresolvenetworkconnectivityissuesinWindows,resettheTCP/IPstackbyfirstopeningCommandPromptasAdministrator,thenrunningthecommandnetshintipreset,andfinallyrestartingyourcomputertoapplychanges;ifissuespersist,optionallyrunnetshwinsockresetandrebootagain

Buka penyemak imbas Yandex; 2. Cari "Laman Web Rasmi Binance" dan masukkan pautan laman web rasmi dengan "Binance"; 3. Klik ikon "muat turun" atau telefon bimbit pada halaman untuk memasukkan halaman muat turun; 4. Pilih versi Android; 5. Sahkan muat turun dan dapatkan pakej fail pemasangan; 6. Selepas muat turun selesai, klik pada fail dan ikuti arahan untuk menyelesaikan pemasangan; Anda mesti sentiasa memuat turun melalui saluran rasmi untuk mengelakkan perisian hasad, memberi perhatian kepada permintaan kebenaran aplikasi, dan kerap mengemas kini permohonan untuk memastikan keselamatan. Seluruh proses memerlukan pengenalpastian yang teliti dari laman web rasmi dan menolak pautan yang mencurigakan, dan akhirnya berjaya memasang aplikasi Binance.

Buat direktori laman web dan tambahkan halaman ujian; 2. Buat fail konfigurasi hos maya di bawah/etc/apache2/tapak-tersedia/, tetapkan ServerName, DocumentRoot, dan sebagainya; 3. Gunakan a2ensite untuk membolehkan tapak, melumpuhkan tapak lalai, dan tambah semula Apache selepas menguji konfigurasi; 4. Tambah nama domain dalam /etc /host semasa ujian tempatan dan tunjuk ke 127.0.0.1; Selepas melengkapkan langkah -langkah di atas, lawati Example.com untuk melihat kandungan laman web, dan konfigurasi hos maya berjaya.

Settings (macosventuraorlater) orsystadpreferences (lama) dari software. Fora

Pilih "Custom: InstallWindowSonly (Advanced)" forfullControl, asitallowsacleanStallThatRemoveSoldIssuesInseMentPrenance.2.DuringSetup, ManagePartitionSbyDeletingOldones (afterbackingupdata), creatingNewPartitions, formatting (formatts)

Jika Mac tidak dapat boot, anda boleh mencuba kaedah berikut untuk memasang macOS: 1. Periksa terlebih dahulu sama ada bekalan kuasa, kabel mengecas dan penyesuai adalah normal; 2. Cuba tetapkan semula SMC; 3. Gunakan macosrecovery (perintah r) untuk memasang semula sistem; 4. Gunakan InternetRecovery (Option Command R) untuk memasangnya dari jauh; 5. Gunakan Mac lain untuk membuat pemacu USB bootable dan pasangnya. Sekiranya semuanya tidak sah, ia mungkin kegagalan perkakasan dan perlu dihantar untuk pembaikan.

EnableAppLockerviaGroupPolicybyopeninggpedit.msc,navigatingtoApplicationControlPolicies,creatingdefaultrules,andconfiguringruletypes;2.Createcustomrulesusingpublisher,path,orhashconditions,preferringpublisherrulesforsecurityandflexibility;3.Testrules
