ホームページ バックエンド開発 PHPチュートリアル PHP附件下载中文名称乱码的解决方法_php技巧

PHP附件下载中文名称乱码的解决方法_php技巧

May 16, 2016 pm 08:02 PM
php 中国語 文字化け 解決

本文实例讲述了PHP附件下载中文名称乱码的解决方法。分享给大家供大家参考,具体如下:

PHP中,如果要下载的文件名称为中文,则会出现文件标题乱码。

此时就需要对标题进行编码,也就是说先进性urlencode,然后再放入header,然后问题就解决了。

$filename = urlencode("下载文档");
header ( "Content-disposition: attachment; filename=$filename.xls" );

ログイン後にコピー

网上说,在RFC2231的定义里面, 多语言编码的Content-Disposition应该这么定义:

复制代码 代码如下:
Content-Disposition: attachment; filename*="utf8''%E6%B5%8B%E8%AF%95.html"

即:

filename后面的等号之前要加 *
filename的值用单引号分成三段,分别是字符集(utf8)、语言(空)和urlencode过的文件名。

所以这时应该对文件名进行url编码转换 ,使用php的urlencode很轻松就搞定了

$ua = _SERVER["HTTP_USER_AGENT"];
$filename = "中文 文件名.txt";
$encoded_filename = urlencode($filename);
$encoded_filename = str_replace("+", "%20", $encoded_filename);
header('Content-Type: application/octet-stream');
if (preg_match("/MSIE/", $ua)) {
  header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');
} else if (preg_match("/Firefox/", $ua)) {
  header('Content-Disposition: attachment; filename*="utf8\'\'' . $filename . '"');
} else {
  header('Content-Disposition: attachment; filename="' . $filename . '"');
}

ログイン後にコピー

希望本文所述对大家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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

deepseekの忙しいサーバーの問題を解決する方法 deepseekの忙しいサーバーの問題を解決する方法 Mar 12, 2025 pm 01:39 PM

DeepSeek:サーバーに混雑している人気のあるAIを扱う方法は? 2025年のホットAIとして、Deepseekは無料でオープンソースであり、OpenAio1の公式バージョンに匹敵するパフォーマンスを備えており、その人気を示しています。ただし、高い並行性は、サーバーの忙しさの問題ももたらします。この記事では、理由を分析し、対処戦略を提供します。 Deepseek Webバージョンの入り口:https://www.deepseek.com/deepseekサーバーに忙しい理由:高い並行アクセス:Deepseekの無料で強力な機能が同時に使用する多数のユーザーを引き付け、サーバーの負荷が過剰になります。サイバー攻撃:Deepseekが米国の金融産業に影響を与えることが報告されています。

ゴマのオープンエクスチェンジを中国語に調整する方法 ゴマのオープンエクスチェンジを中国語に調整する方法 Mar 04, 2025 pm 11:51 PM

ゴマのオープンエクスチェンジを中国語に調整する方法は?このチュートリアルでは、コンピューターとAndroidの携帯電話の詳細な手順、予備的な準備から運用プロセスまで、そして一般的な問題を解決するために、セサミのオープン交換インターフェイスを中国に簡単に切り替え、取引プラットフォームをすばやく開始するのに役立ちます。

セサミオープンドアエクスチェンジアプリ公式ダウンロードセサミオープンドアエクスチェンジ公式ダウンロード セサミオープンドアエクスチェンジアプリ公式ダウンロードセサミオープンドアエクスチェンジ公式ダウンロード Mar 04, 2025 pm 11:54 PM

SESAME Open Exchangeアプリの公式ダウンロード手順は、AndroidおよびiOSシステムのダウンロードプロセスと一般的な問題ソリューションをカバーしているため、安全かつ迅速かつ迅速に、暗号通貨の便利なトランザクションを有効にするのに役立ちます。

セサミオープンドアエクスチェンジウェブページログイン最新バージョンgateio公式ウェブサイトの入り口 セサミオープンドアエクスチェンジウェブページログイン最新バージョンgateio公式ウェブサイトの入り口 Mar 04, 2025 pm 11:48 PM

ログインステップやパスワード回復プロセスなど、セサミオープンエクスチェンジWebバージョンのログイン操作の詳細な紹介も、ログイン障害、ページを開くことができず、プラットフォームにスムーズにログインするのに役立つ検証コードを受信できません。

コインを購入した場合に支払えない場合はどうすればよいですか?なぜコインを購入するのはなぜ冷凍されているのですか? コインを購入した場合に支払えない場合はどうすればよいですか?なぜコインを購入するのはなぜ冷凍されているのですか? Mar 05, 2025 pm 06:45 PM

デジタル通貨取引プラットフォームで取引する場合、最も心配な状況は、売り手が購入後にコインをリリースしないか、買い手が支払うことができないことです。これらの状況は両方とも、その後のトランザクションに深刻な影響を与えます。この記事では、バイヤーが支払うことができない方法に焦点を当てます。コインを購入した場合に支払えない場合はどうすればよいですか?支払いが不可能な状況に遭遇した場合、まず独自の支払い方法とアカウントステータスを確認し、ネットワークと取引プラットフォームが正常に動作しているかどうかを確認する必要があります。問題が同じ場合、プラットフォームのカスタマーサービスに連絡することが通常最も効果的なソリューションです。より詳細なソリューションを次に示します。支払い方法の問題:一部の銀行またはクレジットカード機関は、暗号通貨関連の取引、特に国際的な支払いを制限する場合があります。制限のために銀行またはクレジットカード会社に連絡し、代わりに別の支払い方法を使用しようとすることをお勧めします。

アカウント教育のバイナンスキャンセル:推奨コードを入力しなかった場合はどうすればよいですか?アカウントを削除して、もう一度登録してください! アカウント教育のバイナンスキャンセル:推奨コードを入力しなかった場合はどうすればよいですか?アカウントを削除して、もう一度登録してください! Mar 04, 2025 am 07:06 AM

バイナンスアカウントを削除するためのプロセスと予防策を完全に理解してください!この記事では、バイナンスアカウントを削除し、削除する前にチェックする重要なものを提供する方法について詳しく説明します。 Binanceアカウント分析を削除する理由ユーザーは、以下の理由でBinanceアカウントを削除することを選択できます。推奨コードは入力されません。多くのユーザーは、登録時に推奨コードに記入しなかったため、取り扱い手数料の割引を逃しました。 Binanceは充填後の充填をサポートしていないため、アカウントの削除と再登録が唯一のソリューションです。交換の変更:ユーザーは、インターフェイス、関数、または検証手順により交換を変更することを選択し、バイナンスアカウントを削除することを決定できます。セキュリティの懸念:交換セキュリティインシデントにより、ユーザーが心配し、アカウントを削除してリスクを減らすことを選択する場合があります。アカウントを削除する前に、必ずBinanceアカウントを削除するプロセスを確認してください

PHPを使用してAlipay EasySDKを呼び出すときの「未定義の配列キー」「サイン」「エラー」の問題を解決する方法は? PHPを使用してAlipay EasySDKを呼び出すときの「未定義の配列キー」「サイン」「エラー」の問題を解決する方法は? Mar 31, 2025 pm 11:51 PM

問題の説明公式コードに従ってパラメーターを記入した後、PHPを使用してAlipay EasySDKを呼び出すとき、操作中にエラーメッセージが報告されました。

node.js環境で403を返すサードパーティインターフェイスの問題を解決する方法は? node.js環境で403を返すサードパーティインターフェイスの問題を解決する方法は? Mar 31, 2025 pm 11:27 PM

node.js環境で403を返すサードパーティインターフェイスの問題を解決します。 node.jsを使用してサードパーティのインターフェイスを呼び出すと、403を返すインターフェイスから403のエラーが発生することがあります...

See all articles