ファイルをアップロードし、/Public/Uploads/bbbbpppp.doc などのファイル パスをデータベースに保存します
データベースは utf-8 bin に編成されます
次に、このファイルをテンプレートとして使用する必要がありますので、それをコピーします別のフォルダーに移動し、名前を変更して再編集します。
英語でファイル名を付けても問題ありませんが、中国語として保存すると -------- ???????
しかし、ファイルをアップロードしようとすると、解決策の iconv メソッドは効果がなく、別の文字化けになります (アップロードされた中国語のファイル名には問題ありません)
$root=$_SERVER['DOCUMENT_ROOT'];
$file = $root.$ checklist[0][ 'description'];//$checklist[0]['description'] はデータベースのパスです。ページの読み取りには問題ありません
$newfile = $root.'documents/''.'Report .doc';
copy($ file, $newfile)
??????? は utf-8 ラララの形式ですgbk 環境で見られる Kan 眍 (これも 1 バイトが欠落しています)
簡体字中国語 Windows オペレーティング システムのデフォルトの文字セットは gbk です
簡体字中国語 linux オペレーティング システムのデフォルトの文字セットは utf-8 です
プログラムにはファイルのコピー、処理されたファイル名のエンコーディングは、オペレーティング システムのデフォルトの文字セットに準拠する必要があります。そうでない場合は、「文字化け」します
データベースは utf-8 bin として編成されていると言いましたが、これは明らかに間違っています
utf- 8 は mysql では utf8 として表現され、bin (バイナリ) はそうではありません。自動トランスコーディングが行われます
助けを求める前に、まず関係を整理してください
データベースエンコーディング utf-8 PHP エンコーディング utf-8 次に、iconv を使用して、 phpのgbkにアップロードしたファイル名はエラーなく中国語で表示されます