- ベストアンサー
HTMLのリンク先ページの文字コードを指定したい
- HTMLのリンク先ページの文字コードを指定する方法について調べています。
- CSVファイルをリンクしてブラウザ上で表示する際に文字化けが起きる問題があります。
- フリーのPHPプログラムなどを使用して、リンク先のCSVファイルの文字コードを指定する方法を探しています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
もちろんPHPでもできますが、ある程度ロジックを組む必要があるので・・・ この場合なら、csv専用のディレクトリ(フォルダ)を作って、 htaccsessでサーバーから自動発行される文字コードを指定してやるのが最も容易です。 PHPが使えるなら多分使えると思います。 http://www.koikikukan.com/archives/2004/11/23-142537.php ここを参考にしつつ、記述を AddDefaultCharset UTF-8 じゃなく AddDefaultCharset Shift-JIS
その他の回答 (3)
- notnot
- ベストアンサー率47% (4900/10358)
>CSVそのものにもヘッダってあるんですか? ファイルではなくHTTPの応答にはすべてヘッダがあります。Content-Typeヘッダはほぼ必須。 ただ、.htaccessなどでApacheサーバの設定(AddType等)が効くのは、csvファイルをサーバ上に置いてそれを参照する場合です。 今回は、ファイルをPHPで動的に生成する場合なので、PHPでヘッダを生成します。 >一度プログラムを解析してみようと思います。 header("Content-Type: text/csv"); ないし header("Content-Type: text/plain"); ないしそれに近い物があるはず。それを header("Content-Type: text/csv; charset=Shift_JIS"); ないし header("Content-Type: text/plain; charset=Shift_JIS"); にします。
- ORUKA1951
- ベストアンサー率45% (5062/11036)
Shift-JISではなく、Shify_JISです。 <a href="hogehoge.csv" charset="Shift_JIS"> php側から送出されるデータのヘッダ部分にcontent-typeとchersetを加える。 サーバーの設定は AddType "text/plain; charset=Shift_JIS" .csv など、 MIMEタイプと文字コード情報 ( http://www.kanzaki.com/docs/sw/http-header.html#charset ) また、phpでも、ヘッダーに header( 'Content-Type: text/plain; charset=Shift_JIS' ); とか、普通に対処すればよいはずです。
- notnot
- ベストアンサー率47% (4900/10358)
PHPでCSVファイルを生成しているときにヘッダ出力はどうしてますか? Content-Type: text/csv であれば、 Content-Type: text/csv; charset=Shift_JIS にすればいいと思います。ただ、text/csv であればExcelがインストールされているPCであればExcelで開こうとするので文字コードの問題は起こりません。ExcelがインストールされているPCでもブラウザで表示したければ、 Content-Type: text/plain; charset=Shift_JIS にします。
お礼
CSVそのものにもヘッダってあるんですか? ヘッダがあるなら、そこにファイルの文字コードを書けば済みそうですね。 ただ、CSV書き出しのプログラムは、前任の方が作ったものなのでよくわかりません(泣) 一度プログラムを解析してみようと思います。 ありがとうございます。
お礼
なるほど、サーバー側で設定しておけば気にしなくていいですね。 私は直接サーバー設定をいじれない(権限が無い)ので、管理者に問い合わせてみます。 ありがとうございます。