解凍符号化エラー
3574 ワード
開発環境
IDE: IntelliJ
Framework: Spring Boot 2.4.11 Project
Gradle
oracle java 11
os: macOS X
Unzip実装中UTF 8エンコーディングエラー
解凍実装では、圧縮ファイルの内部にファイルリストをリストする部分があります.
ファイル名にハングルのファイル名が入っているから!エラー!
JAva内蔵java.util.* ハングルは破壊されるそうです.
解凍時にハングルを破壊しないapache.commons.compress.
ライブラリを追加すると、jarファイルをプロジェクトに追加できます.
以前はMVN centralを検索した後、gradle dependenciesを簡単に追加しただけなので、慌てました.
ダウンロードcommons圧縮
DownloadタブにアクセスしてBinarisページをダウンロードします.
jarファイルがあります!
JArは実行可能なバイナリコードです
ソースコードはオペレーティングシステムに対してコンパイルする必要があります.
ライブラリjarの追加
プロジェクトパスにlibsディレクトリを作成する
ディレクトリにjarコピーを貼り付ける
build.gradeを開き、コンパイルするjarパスを依存項目に書き込む
compile files('libs/commons-compress-1.21.jar')
注意)jarの数が多すぎてlibsディレクトリのすべてのjarコンパイル
compile fileTree(dir: 'libs', include: ['*.jar'])
圧縮解凍
コーディングの問題
解凍コードは以下の通りです.
// 압축 풀기
public void saveUnzipFiles(String getStoreFileName, String itemName) throws IOException {
CompressionUtil cu = new CompressionUtil();
File sourceZipFile = new File(fileDir + getStoreFileName); // zip파일 경로
File targetDirPath = new File(fileDir + itemName); // 압축 풀 디렉토리 명
// 압축 풀기
cu.unzip(sourceZipFile, targetDirPath);
}
cu.解凍(sourceZipFile、targetDirPath、符号化);最後のパラメータに符号化を追加できます.
加算しないと次のエラーが発生します.
検索するとMac OS Xのバイト順がです.
「ISO-8859-1」コードを使用すると、ランタイムエラーは発生しませんが、解凍するとファイル名が破壊されます.
cu.unzip(sourceZipFile, targetDirPath, "ISO-8859-1");
「EUC-KR」で書くと割れません!!!ヤフー💛
cu.unzip(sourceZipFile, targetDirPath, "EUC-KR");
サスペンス
URIはURLにURIを含む.差異.
->識別子が何であるかにかかわらず、最終的にHTTPリクエストを発行するときにリソースのアドレスにアクセスします.
識別子:洪吉童.(一意の名前)
Locator住所:ソウル陽川区木1洞@@マンション洪吉洞.
ライブラリをダウンロードするときのBinarisとSourceの違いは?
->jarはコンパイル可能なファイルです.SourceはSourceとしてリリースされ、オペレーティングシステムの必要に応じてコンパイルされる必要があります.
ハングルを表現するためにUTF-8だけを考えた各符号化の違いは?
注意:配置
CompressionUtil.java
Reference
この問題について(解凍符号化エラー), 我々は、より多くの情報をここで見つけました https://velog.io/@freejia/압축풀기-인코딩-에러テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol