目次
phpによってアップロードされた中国語のファイル名が文字化けする問題を解決するソリューション、
ホームページ バックエンド開発 PHPチュートリアル PHP でアップロードした中国語ファイル名が文字化けする問題の解決策、_PHP チュートリアル

PHP でアップロードした中国語ファイル名が文字化けする問題の解決策、_PHP チュートリアル

Jul 13, 2016 am 10:07 AM
中国語文字化け

phpによってアップロードされた中国語のファイル名が文字化けする問題を解決するソリューション、

PHP でのファイルのアップロードは技術的に最も基本的な点ですが、さらに深く進むと、解決しなければならない問題がたくさんあります。いいえ、中国語のファイルをアップロードすると、ファイル名が文字化けします。

以下は問題のコードです。非常に簡単です:

1. 問題コード

html部分:

コードをコピーします コードは次のとおりです:



<フォームアクション="upload_file.php" メソッド="投稿"
enctype="multipart/form-data">








php部分:



コードをコピーします コードは次のとおりです:
if ($_FILES["ファイル"]["エラー"] > 0)
{
echo "リターン コード: " . $_FILES["file"]["error"] "
";
}その他
{
echo "アップロード: " . $_FILES["ファイル"]["名前"] "
";
echo "タイプ: " . $_FILES["ファイル"]["タイプ"] "
";
echo "サイズ: " . ($_FILES["ファイル"]["サイズ"] / 1024) " Kb
";
echo "一時ファイル: " . $_FILES["file"]["tmp_name"] "
";
If (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] " はすでに存在します。";
}
その他
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"アップロード/" . $_FILES["ファイル"]["名前"]);
}
}

「テストデータ.txt」というファイルをアップロードしました、おお、ファイルはアップロードできましたが、ファイル名が文字化けしていました。

2. 最初のテスト

オンラインで解決策を検索し、

コードをコピーします コードは次のとおりです:
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);

に変更されました

コードをコピーします コードは次のとおりです:
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" .iconv("UTF-8","gbk",$_FILES["file"]["name"]));

iconv 関数が false を返すことがわかりました。

関数のマニュアルを確認すると、2 番目のパラメータには特別な使い方があることがわかります。簡単に言うと、エンコードの後に​​ //TRANSLIT または //IGNORE を追加すると、翻訳できない文字が最も近い文字に変換されます。変換できない文字。

試してみる:

コードをコピーします コードは次のとおりです:
var_dump( iconv("UTF-8","gbk//TRANSLIT",$_FILES["ファイル"]["名前"]));
var_dump( iconv("UTF-8","gbk//IGNORE",$_FILES["ファイル"]["名前"]));

結果:

bool(false) string(4) ".txt"

つまり、漢字は変換できないし、近い文字すら存在しない ネットで紹介されている方法は万能ではないようです。

3. オンライン導入方法が失敗した場合は、もう一度試してください

推測ですが、おそらく私のシステムでは中国語ファイルを作成するときに文字化けが発生するので、コードを書き直しました:

コードをコピーします コードは次のとおりです:
move_uploaded_file($_FILES["file"]["tmp_name"], "アップロード/テストデータ.txt");

結果は文字化けもなく正常に作成されました。 。 。つまり、システムの問題ではありません。

考えてみてください、私の PHP ファイル自体は utf8 でエンコードされています

コードをコピーします コードは次のとおりです:
move_uploaded_file($_FILES["file"]["tmp_name"],"アップロード/テストデータ.txt");

このステートメントは utf8 エンコードを使用する必要があるため、前にアップロードしたファイル名は utf8 エンコードであってはならず、ソース文字列自体が utf8 エンコードされていないため、次のステートメントは間違っているはずです。

コードをコピーします コードは次のとおりです:

iconv("UTF-8","gbk//TRANSLIT",$_FILES["ファイル"]["名前"]);

関数を使用してソース文字列のエンコーディングを確認します:

コードをコピーします コードは次のとおりです:

$e=mb_detect_encoding($text, array('UTF-8', 'GBK','gb2312'));
エコー $e;

結果はCP936、つまりソース文字列エンコーディングはGBKです。

試してみる

コードをコピーします コードは次のとおりです:

move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" .iconv("gbk","UTF-8",$_FILES["file"]["name"]));

問題解決、文字化けもなくなりました

4.別の解決策

実際には、HTML ファイルの head タグの途中に

を追加するという別の解決策があります。

コードをコピーします コードは次のとおりです:


したがって、エンコーディングは統一されたままとなり、トランスコードする必要はなくなります

5.以下が結論です

iconv 関数を使用すると、アップロード時の中国語のファイル名が文字化けする問題を解決できます。実際、iconv は、エンコーディングの不一致によって引き起こされるさまざまな文字化けの問題を解決できます。
ソース文字列のエンコードをまだ決定していない場合を除き、iconv 関数を使用するときは、まずソース文字列のエンコードを確認してください。
すべてのコードが一貫してエンコードされていることを確認し、iconv 関数は最後の手段としてのみ使用してください。
苦情を申し立てる場合は、サーバーに保存されるファイル名に中国語のファイル名を使用しないようにしてください。ファイル名は独自のファイル名に変換してください (英語のファイル名でも変換してください)。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/953152.html技術記事 php でアップロードされた中国語ファイル名が文字化けする問題の解決策。php でファイルをアップロードすることは最も基本的な技術的な点ですが、さらに深く掘り下げると、解決する必要がある問題がたくさんあります。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP Dompdfの中国語文字化け問題を解決する方法 PHP Dompdfの中国語文字化け問題を解決する方法 Mar 05, 2024 pm 03:45 PM

PHPDompdf の中国語文字化け問題を解決する方法 PHPDompdf は、HTML 文書を PDF ファイルに変換するツールで、強力で使いやすいです。ただし、中国語のコンテンツを処理すると、中国語の文字化けの問題が発生することがあります。この記事では、PHPDompdf の中国語文字化け問題を解決するいくつかの方法と具体的なコード例を紹介します。 1. フォント ファイルを使用して中国語コンテンツを処理する場合、よくある問題は、Dompdf がデフォルトで中国語コンテンツをサポートしていないことです。

PyCharmの中国語文字化け問題の究極の解決策 PyCharmの中国語文字化け問題の究極の解決策 Jan 27, 2024 am 08:00 AM

PyCharm の中国語文字化けの問題を解決する究極の方法には、特定のコード例が必要です。はじめに: PyCharm は、一般的に使用される Python 統合開発環境 (IDE) として、強力な機能とフレンドリーなユーザー インターフェイスを備えており、多くの人に愛され、使用されています。開発者の大多数。ただし、PyCharm が中国語の文字を処理すると、文字化けが発生する場合があり、開発やデバッグで特定の問題が発生します。この記事では、PyCharmの中国語文字化け問題の解決方法と具体的なコード例を紹介します。 1. プロジェクトをセットアップする

MySQL インストールにおける中国語の文字化けの一般的な原因と解決策 MySQL インストールにおける中国語の文字化けの一般的な原因と解決策 Mar 02, 2024 am 09:00 AM

MySQL インストール時に中国語が文字化けする一般的な原因と解決策 MySQL は一般的に使用されるリレーショナル データベース管理システムですが、使用中に中国語の文字化けの問題が発生し、開発者やシステム管理者を悩ませることがあります。中国語の文字化けの問題は、主に文字セットの設定が間違っていることや、データベースサーバーとクライアントの間で文字セットが一致していないことが原因で発生します。この記事では、MySQL インストールにおける中国語の文字化けの一般的な原因と解決策を詳しく紹介し、誰もがこの問題をよりよく解決できるようにします。 1. よくある理由: 文字セットの設定

ajaxで中国語の文字化けが送信された場合の対処方法 ajaxで中国語の文字化けが送信された場合の対処方法 Nov 15, 2023 am 10:42 AM

ajax で中国語の文字化けを送信する場合の解決策: 1. 統一されたエンコード方式を設定する; 2. サーバー側のエンコード; 3. クライアント側のデコード; 4. HTTP 応答ヘッダーの設定; 5. JSON 形式を使用する。詳細な導入: 1. 統一されたエンコード方式を設定して、サーバーとクライアントが同じエンコード方式を使用するようにします。通常の状況では、UTF-8 は複数の言語と文字セットをサポートできるため、一般的に使用されるエンコード方式です。 2 、サーバー側のエンコード: サーバー側で、中国語データが正しいエンコード方法でエンコードされてからクライアントなどに渡されることを確認します。

Linuxシステムで中国語が文字化けする問題を解決する方法 Linuxシステムで中国語が文字化けする問題を解決する方法 Feb 19, 2024 am 09:22 AM

Linux の中国語文字化けの問題は、多くの中国人ユーザーが Linux システムを使用するときによく遭遇する問題です。中国語の文字化けの主な原因は、Linux システムで使用されるデフォルトの文字エンコーディングが UTF-8 であることですが、一部のソフトウェアやアプリケーションが UTF-8 エンコーディングと互換性がないため、中国語の文字が正しく表示されないことがあります。この問題を解決するには多くの方法がありますが、いくつかの一般的な解決策を以下で詳しく説明し、具体的なコード例を示します。端末の文字エンコーディング設定を変更する: 端末の文字エンコーディング設定によって、端末が正しく動作できるかどうかが決まります。

PHPのWebページに中国語の文字化けがある場合はどうすればよいですか?完全なソリューション PHPのWebページに中国語の文字化けがある場合はどうすればよいですか?完全なソリューション Mar 26, 2024 pm 03:27 PM

PHP Webページの中国語文字化け問題は、Webページ表示時に中国語の文字が文字化けして表示される問題で、エンコーディングの不一致や文字セットが設定されていないことが原因で発生することが多いです。 PHP Web ページの中国語文字化けの問題を解決するには、さまざまな側面から始める必要があります。以下に、一般的な解決策と具体的なコード例をいくつか示します。 PHP ファイルのエンコードを設定する: まず、PHP ファイル自体のエンコードが UTF-8 であることを確認します。エディタで保存するときに UTF-8 エンコードを設定するか、PHP ファイルのヘッダーに次のコードを追加して設定することができますエンコーディング: &amp;l

Eclipseの中国語文字化け問題を効果的に解決する実践的な方法 Eclipseの中国語文字化け問題を効果的に解決する実践的な方法 Jan 03, 2024 pm 05:50 PM

Eclipse で中国語の文字化けを迅速に解決するための実践的なヒントには、特定のコード サンプルが必要です。 概要: Eclipse は、複数のプログラミング言語の開発をサポートするだけでなく、複数のオペレーティング システムもサポートする、広く使用されている統合開発環境 (IDE) です。しかし、Eclipseを使用していると時折中国語の文字化けが発生し、開発作業に不便をもたらすことがあります。この記事では、Eclipse における中国語の文字化けの問題を迅速に解決するための実践的なテクニックを、具体的なコード例を交えて紹介します。 1つ、

matplotlibの中国語文字化け問題を解決する効果的な方法 matplotlibの中国語文字化け問題を解決する効果的な方法 Jan 13, 2024 am 11:03 AM

matplotlibの中国語文字化けを素早く解決する効果的な方法 はじめに: matplotlibはPythonでよく使われる描画ライブラリですが、注釈や表示に中国語を使用すると文字化けがよく発生します。この記事では、いくつかの効果的な回避策を紹介し、具体的なコード例を示します。 1. フォントを設定します。matplotlib はデフォルトで中国語表示にシステム フォントを使用しますが、システム フォントには中国語の文字が含まれていないことが多いため、適切な中国語フォントを手動で設定する必要があります。まず、コンピュータに次の機能があるかどうかを確認する必要があります。

See all articles