![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
大変困っておりますので、お分かりになる方どうぞ宜しくお願い致します。
環境は以下の通りです。
OS:Linux
Webサーバ:Apache2
言語:PHP4
PHPのプログラム内で、アンカーを生成し、
<a class='file' href="#" onClick="OpenFileWindow('./file/テスト.ppt');"> テスト.ppt</a>
javascriptのwindow.openで、ファイルを開こうと試していますが、ファイル名が日本語の場合、開くことができません。
実行すると、「ページが見つかりません」と表示されてしまうのです。
試しにそのファイルを英数字の名前へ変更し、実行するとちゃんと開く事ができます。
何が悪いのかさっぱり分からず、困っております。
どうぞ宜しくお願い致します。
No.4ベストアンサー
- 回答日時:
No 3の人の回答でほぼ大丈夫だと思いますが、実際にどんなエンコードで保存されているか確認する必要が有ります。
Apacheなら、index.htmlのないフォルダにファイルをコピーしてブラウザからアクセスし、表示エンコードを確認すれば簡単に確認出来ると思います。文字化けしていた場合にはブラウザのエンコードを変えてみて、きちんと表示されるエンコードが保存されているファイル名のエンコードです。
なお、Win環境の場合、ファイルをダウンロードするときもSJISが標準になっているので、ダウンロード時ではなく、ファイルを保存(アップロード等)するときにファイル名をSJISにしておくと間違いが少ないと思います。保存したファイル名のエンコードをSJISとしておけば文字化けせずにすんなりとダウンロード出来ると思います。例えばスクリプト内の内部エンコーディングをEUC-JPとした場合は、
$file = urlencode(mb_convert_encoding($filename,"SJIS","EUC-JP"));
で良いと思います。
ご返答が遅くなってしまい、申し訳ありませんでしたm(__)m
>$file = urlencode(mb_convert_encoding($filename,"SJIS","EUC-JP"));
で良いと思います。
ご丁寧な回答、本当にありがとうございます。
とても参考になりました。
この方法で明日試してみたいと思います。
No.3
- 回答日時:
日本語ですと文字コードが違うと全く違うファイル名になるので当然ですね
Linux上のファイル名の文字コードに変換すればいいはずです。
Shift JISからutf-8に変える場合なら
<?php
$file = './file/テスト.ppt';
$file = mb_convert_encoding($file, "utf-8", "sjis");
$file = urlencode($file);
?>
<a class='file' href="#" onClick="OpenFileWindow('<?php echo $file ?>');"> テスト.ppt</a>
ご返答が遅くなってしまい、申し訳ありませんでしたm(__)m
ごてもご丁寧なご回答を頂き、感謝しております。
この方法で試してみた所、ファイルは開く事ができたのですが、ダウンロード時に表示されるwindowsメッセージ画面の中のファイル名が化けでしまいます。。。
もうこれは仕方ないのでしょうか?
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_05.png?8acaa2e)
No.1
- 回答日時:
このへんとか
http://cutie.dip.jp/pc/linux/php-mb/
このへんでどうでしょう?
http://www.syon.co.jp/syontech/tech003.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) <a href="file:///フォルダ名/ファイル名">リンクテキスト</a>について 1 2023/04/06 22:40
- 画像編集・動画編集・音楽編集 DVD Styler トラブル解決方法 6 2022/10/29 16:00
- その他(ソフトウェア) Emacsメニューの日本語化について 1 2023/06/16 15:52
- HTML・CSS CSSファイルの日本語コメントが文字化けしてしまう 3 2022/12/26 15:50
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Excel(エクセル) Excel ある複数列に数値を入力した際に、別の列に本日の日付を入力したいです 7 2023/03/01 23:31
- iOS ファイルの名前変更 2 2022/08/11 20:47
- Windows 10 explorerをedgeで開く方法 2 2022/06/05 14:59
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Excel(エクセル) エクセルのファイルにリンクを貼る方法 4 2023/06/30 11:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2つの画像ファイルが異なるファ...
-
PHPでテキストファイルかどうか...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
別ファイルの変数を呼び出した...
-
PHPのif文でその処理を途中で抜...
-
CFileDialogの最初のディレクト...
-
.phpと.incファイルの違いはな...
-
「警告:ページの有効期限切れ...
-
「@$変数」の「@の意味は?」
-
リンク先を隠す方法はないでし...
-
現在位置より2つ上のディレク...
-
Subversionのリポジトリの削除
-
VB6にてメールを送信する方法
-
パースエラーとは?
-
XAMPPでSQL文を流すとフリーズ...
-
データ送信をボタンを押さずに...
-
【file_exists】ファイルが存在...
-
URLが.PHPってどういう...
-
Smarty includeでテンプレート...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2つの画像ファイルが異なるファ...
-
stat failed
-
PHPでFilename cannot be empty...
-
XMLのロードに失敗する
-
ファイルの行数取得
-
日本語が文字化けしないよう読...
-
ファイル名は、数字の「0」(...
-
PHPで特定の文字列のみ抽出し、...
-
php4、php5によるimplode()、fi...
-
テキストファイルの読み込みと...
-
CSV出力
-
二次元配列のソートのやり方が...
-
phpのftp_get()でエラーが出ます。
-
日本語のファイルが開けない
-
Smartyで吐き出されたhtmlソー...
-
PHPでの別のサーバーのテキスト...
-
ファイルについて・・・。
-
ファイルの読み込み方法について
-
TSVファイルをCSV形式に変換したい
-
PHPでテキストファイルかどうか...
おすすめ情報