私はzipアーカイブを生成するためにphp ZipArchiveクラスを使用しています。私はaddFileメソッドの2番目のパラメータを使用してアーカイブ内のファイル名を設定します(ディスク上の実際のファイルは異なる名前を持つため)。一部の名前にはフランスアクセント記号(&など)を含める必要があります。アーカイブをダウンロードすると、アクセントがファイル名に正しく表示されません。ファイル名にはどのようなエンコーディングを使用する必要がありますか? (アプリケーションはUTF-8を使用します)ZipArchiveは、作成したアーカイブ内にファイル名を格納するためにどのエンコードを使用しますか?
答えて
Zipファイルには指定されたエンコードがありません。アーカイブツールは使用されたエンコーディングを推測(または仮定)する必要があります。最初にCP1252を試してから、そこから行ってください。
動作しません。私はISO-8859-1、CP1252およびCP850を成功させずに試しました。 – matei
ファイル名のバイトシーケンスはどのようなものになりますか?テキストには何が含まれていますか? –
DOSエンコードを使用してください。私のファイル名にはキリル文字が含まれているので、$zip->addFile()
にファイル名を渡すと、cp1251
(Windows)からcp866
(DOS)にファイル名がエンコードされます。
ありがとう!あなたはどのように使用するエンコーディングを正確に考えましたか? – YakovL
これはPHPバグ#53948です(official bug reportを参照)。 (私のために働いていた)
推奨回避策:
$zip->addFile($file, iconv("UTF-8", "CP852", $local_name));
- 1. ZipArchiveクラスを使用してC#でアーカイブ内にアーカイブを作成します
- 2. IDをエンコードして一意のコードとして格納し、行の作成時にテーブルに格納します
- 3. gitはどこにファイル名を格納しますか?
- 4. PHPでpkzipアーカイブを作成するためのZipArchive以外のライブラリ?
- 5. xmlに格納されたデータからファイルを作成する
- 6. GHashTableはそのノードを格納するためにハッシュ値をどのように使用しますか?
- 7. WebSqlデータベースを使用して作成されたテーブルと格納されるファイルのタイプはどこに格納されていますか?
- 8. ユーザーを格納するためのfirebaseのキーとしてユーザー名を使用
- 9. ダブルループのため、リストで作成した変数を格納
- 10. MySQL-clusterを使用して格納されたテーブルデータは正確にどこに格納されますか?
- 11. azureにマスタデータを格納するために使用するストレージ
- 12. CMD:ファイルのパスを変数に格納します。ファイル名は
- 13. Djangoは携帯電話番号を格納するために、どのフィールドを使用しますか?
- 14. モデル対セッション - データを格納するためのJavaアプリケーションにはどちらを使用しますか?
- 15. 変数に格納されたファイル名のファイル内容を出力する
- 16. 私のxCodeアーカイブはIPAファイルを作成しましたが、最後に.APPファイルが作成されました
- 17. キューからファイルを処理し、アーカイブしてDBに格納する
- 18. ファイルとしてbase64でエンコードされた文字列を格納します。
- 19. テキストファイルをDirに格納し、ファイル名をリストに格納するpython
- 20. ZipArchiveはファイルを作成しますが、ZipArchive :: close()は名前を変更できません
- 21. ファイルからスキャンしてデータを格納するためのJava arraylistを使用しています
- 22. Pythonは新しい列を作成し、.CSVファイルにデータを格納します
- 23. Yii2はDBに格納された情報からパスエイリアスを作成します
- 24. ゲームにドットを格納するための配列を作成することに混乱しています。
- 25. Haskellにデータを格納するためのテーブルを作成する
- 26. Hibernateを使用してJ2EEアプリケーションにグローバルデータを格納するためのベストプラクティス
- 27. 結果セットから行を格納するために使用されるクラスの名前は何ですか?
- 28. オブジェクトを格納するためのリストを使用する
- 29. Cuda:連続したさまざまなサイズのデータを格納するためにグローバルメモリを使用する
- 30. Mavenはjunit jarファイルをどこに格納しますか
Zipは、かなり古い形式だと、Unicodeを先行し。 2007年以前の旧バージョンのフォーマットは、おそらく標準の拡張asciiを使用するだけです。 '07年以降、新しい仕様ではUTF-8が許可されました。生成しているファイルのバージョンを確認してください。 –