• ベストアンサー

日本語名ファイルのDL時の文字化けについて

<a href="aaa/日本語.txt">日本語</a> のようにリンクを貼ったのですが、ファイル名が上のように日本語のときに文字化けを起こしてファイルのダウンロードができません。 mb_convert_encodingとかを使ったりして色々試してみましたができません。どなたか解決策をご教授お願いいたします。

  • HTML
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ほとんどのサーバーは日本語(全角)ファイル名に対応していないので、サーバーに置くファイルは、 『japanese.txt』のように半角英数名にしないとエラーになります。

shizer
質問者

お礼

レンタルサーバなので、対応させることもできませんし、あきらめて英語にしようかと思います。回答ありがとうございました

その他の回答 (1)

noname#100277
noname#100277
回答No.2

エンコードすれば問題の「一部」は回避可能ですが、名前の文字列に拠っては不具合を起こしたりと問題は山積です。 又、OSやブラウザの問題も含んでますので、現状では1同様に英文字表記以外他在りませんね。

shizer
質問者

お礼

どうもそのようですね。仕方がないので英語にすることにしました。ご回答ありがとうございました。

関連するQ&A

  • 日本語が文字化けしないよう読み込み

    特定ファイルにある複数行の日本語文章を 「fgets」や「file_get_contents」などで画面に読み込む時は、 単純に「mb_convert_encoding」を使えば 良いと思ったのですが 下記のようには文法的にも使えませんでした。 -------------------------------------- <?php $fp = fopen("sample.txt", "r"); $fp = mb_convert_encoding($fp, "UTF-8"); ←※間違い if($fp){ flock($fp, LOCK_SH); while(!feof($fp)){ $data = fgets($fp); echo "$data<br>"; } flock($fp, LOCK_UN); } fclose($fp); ?> -------------------------------------- すでに書き込んである 日本語が複数行書かれたファイルから 文字化けしないようにデータを読み込んで表示するには どのような処理をしたら良いのでしょうか? 複雑な処理はまだ理解できないので 簡単な処理方法があれば お教えください。 よろしくお願いいたいます。

    • ベストアンサー
    • PHP
  • SJIS→EUCに送っても文字化けしない

    htmlは、SJISで作っています。 PHPは、EUCで作っています。 普通は文字化けをするため、mb_convert_encoding関数を用いますが、 なぜか、この関数を使わなくても、文字化けしません。 友人は、有り得ないと言います。 事実、友人PCではmb_convert_encoding関数で文字化けを直してました。 私も友人に同感で、SJIS→SJISやEUC→EUCなら文字化けしないけど、文字コードが違うのです。違うから、mb_convert_encoding関数を使うと、思っているのですが‥‥ 設定が違うのかと思い、友人の、php.iniなどいくつかのファイルを私のPCに上書きしてもらいましたが、変わりませんでした。 こういうことってあるのでしょうか? 文字化けしないなら、mb_convert_encoding関数を使わなくて良いので、楽だと思いましたが・・・ 何かの不具合なら、いざ完成した時、またmb_convert_encoding関数をいれる手間がありますし、どうしようか迷っています。 本には、「文字化けしない場合もある」という記述は一言も書いてありませんでした。 逆に、「文字化けするからmb_convert_encoding関数を用いる」と大きく書いてあるぐらいです。 何かの設定なのでしょうか? ソフトのバージョンも、同じでした。不思議です。

    • ベストアンサー
    • PHP
  • PHP + SQLite 文字化けについて

    SQLite と php5でデータベース管理画面を作っていますが、 日本では正常に表示されますが、 中国からアクセスすると文字化けしてしまいます。 文字はソース上で下記のように設定しています。 mb_convert_encoding($aaa,"SJIS","EUC-JP"); SQLiteが、SJISに対応していないと思い、 monospaceに変換するように下記のように変更しました。 mb_convert_encoding($aaa,"monospace","EUC-JP"); しかし、画面上で Warning: mb_convert_encoding() [function.mb-convert-encoding]: Unknown encoding "monospace" in C:\Apache Group\Apache2\htdocs\aaa\aaa.php on line XXX と出ます。 なにか解決策をご存知の方いらっしゃいましたら お教えいただけると幸いです。 どうぞよろしくお願いいたします。 なお、ページ自体の文字設定は、 <meta http-equiv="Content-Type" content="text/html; charset=S-JIS">となっているところ、 ソース変更にともないこちらも、charset=monospace">と変更しました。

    • 締切済み
    • PHP
  • NN7.1での日本語ファイル名の文字化けについて

    似たような問題はあったのですが、解決できないの質問させて下さい。 PHPで、 $fname = mb_convert_encoding($fname, "SJIS","EUC-JP"); header("Content-Type: application/x-msdownload"); header("Content-Disposition: fname=\"$fname\""); としてheaderを送り、ファイルダウンロードを行っているのですが、 NN7.1でダウンロードしようとするとファイル名が文字化けしてしまいます。 IEであれば問題なくダウンロードできるのですが…。 ネット検索したり、RFCを見たりはしたのですが解決できませんでした。 HTTP_USER_AGENTを調べてブラウザ別に対処することも考えていますが、 とにかくNNに対応できず困っております。 ご教授いただければ幸いです。よろしくお願い致します。

    • 締切済み
    • PHP
  • 文字化けしてしまいます。

    ~の文字が文字化けして、どうしても解決ができません。 どなたかお分かりになる方、アドバイスをよろしくお願いいたします。 PHP5、Xampp、XP の開発環境になります。 実は出勤時間をPCからと携帯からの両方で管理しようと思っています。 データ保存用ファイルは、utf-8のtxtファイルになります。 すべてをutf-8のファイルで作ることができれば、問題は起きてこないわけですが、携帯が かかわってきており、sjisを使わざるを得ません。かといって、すべてのファイルをSJISにするのも これまた、ダメ文字の関係でそれもできません。 そこで、携帯だけはsjisファイルで作っています。このsjisファイルとutf-8ファイルの間で文字化けが おきてしまいます。 出勤時間を読み込んで、10:00~のようにutfの保存用ファイルから読み込んで、mb_convert_encoding でsjisに変換して表示をします。これは、普通に表示になります。 表示されたファイルは携帯のsjisファイルですので、携帯から出勤時間を変更して保存しようとする 場合、今度はsjisからutf-8に変更して保存する必要があります。 そこで、携帯からutf-8の保存用ファイルに更新した内容を保存する場合にmb_convert_encodingを かけて、utf-8に変換しました。一応、mb_detect_encodingを使ってutf-8に変更されていることも 確かめました。 しかし、保存さているデータは、10:00縲 というように~が縲に文字化けしてしまいます。 この文字化けを回避する方法がお分かりの方、ぜひお知恵をお貸しください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • DLしたファイルの文字化けについて

    こちらのサイトで、使用したいプラグインがあり、『update01.zip』というフォルダをDLしました。 http://www.a-kojima.net/set/index.php?%C4%C9%B2%C3%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3 ところが解凍してみると、中の「プラグインアップデート.txt」が文字化けしてしまっていて説明を読むことができません。 同梱されていた.phpもワードパットで開いてみたのですが文字化けしています。 (フォルダ名・ファイル名は異常ないようです) サイトの管理人さんに問い合わせようかと思ったのですが、メールがわからず、またBBSもパスワード制で連絡が取れないようです。 文字化けしているファイルを正しく読む方法はないでしょうか。 関係ないかもしれませんが、IE7に変えてからエンコードが日本語自動選択(JIS)からUnicodeに変わっています。 自動選択(JIS)では文字化けしてしまい、(EUC)では画面が真っ白になります。 文字化けと関係あるでしょうか。

  • curlでFTP転送時、日本語ファイル名が文字化け

    linux上でcurlコマンドを使用し日本語ファイル名をFTP転送した場合、 文字化けしてしまいます。何か解決策はありますでしょうか。 下記の記事(Windows環境の場合)ではcurlでは日本語ファイル名が転送できない旨の記述がありました。 解決策としてA案、B 案の記述がありますが意味がよくわからないです。A案はテンポラリフォルダにファイルをコピーしてそれをアップロードするようなことが書いてありますがなぜそれで解決するのでしょうか。日本語ファイル名のファイルをテンポラリフォルダにコピーしてそれをアップロードしても結果は同じで文字化けすると思います。 また、B案は日本語ファイル名「日本語.csv」があった場合、シンボリックリンク(ショートカット)を「test.csv」の名前で作成。「test.csv」をアップロードするということでしょうか?ショートカットがアップロードされるだけのような気がするのですが違いますでしょうか。 https://golorih.exblog.jp/26695040/

  • phpのmb_convert_encodingで文字化け

    phpのmb_convert_encodingで文字化け phpでmb_convert_encodingを使用してSJISよりUTF-8にエンコーディングしています。 ところが、“(”や“?”などが1文字目に存在すると文字化けしてしまいます。 どのような原因が考えられますでしょうか? お願いいたします。

    • ベストアンサー
    • PHP
  • 名前が日本語のファイルダウンロード方法

    IEでページを表示して、そこのリンクをクリックするとダウンロードの画面が開きダウンロードするという方法で http://test.com/日本語.xls をクリックしたとき、ファイルはあるにもかかわらず、ファイルがないというエラーが出ます。 php側の文字コードは「utf8」です。 mb_convert_encoding($filename, "SJIS", "utf8") としてもダメでした。 この方法でダメな場合、他に方法はありますか?

    • ベストアンサー
    • PHP
  • 日本語ファイルのリネームと保存

    ファイルアップデートで日本語ファイル名をリネームしてデータベースで対応付けて保存するプログラムを作成しました、そのファイルをリンクしてダウンロードする場合に元の日本語ファイル名で自動的にリネームしてPC側で保存する方法はないでしょうか。 例えば「あああ.txt」を「a.txt」にリネームして <a href="a.txt">あああ.txt</a> という風にしています、これをクリックするとa.txtになってしまいますが、あああ.txtで表示・保存するようにしたいのですが、何かうまい方法はないでしょうか。

    • ベストアンサー
    • PHP

専門家に質問してみよう