
ある事情で、CSVファイルをリンクしてブラウザ上で表示しなければならなくなりました。
CSVファイルはPHPから自動で生成されます。
このCSVファイルが「Shift-JIS」の文字コードなのですが
WEBサイトのHTMLは「UTF-8」で記載されています。
このため、あるページからリンク先のCSVファイルに飛んだ時に、文字化けが発生しています。
ブラウザの文字コードを変えれば、表示はできますが
実際に運用される方々は、文字コードを変えるなどに気がついてはいただけません。
そこでCSVをリンクするHTMLから、リンク先のCSVを「Shift-JIS」で開くように文字コードを指定するような事はできないでしょうか?
フリーのPHPプログラムなどを要する事で実現できるなら、それでも構いません。
よろしくおねがいします。

No.2ベストアンサー
- 回答日時:
もちろんPHPでもできますが、ある程度ロジックを組む必要があるので・・・
この場合なら、csv専用のディレクトリ(フォルダ)を作って、
htaccsessでサーバーから自動発行される文字コードを指定してやるのが最も容易です。
PHPが使えるなら多分使えると思います。
http://www.koikikukan.com/archives/2004/11/23-14 …
ここを参考にしつつ、記述を
AddDefaultCharset UTF-8
じゃなく
AddDefaultCharset Shift-JIS
なるほど、サーバー側で設定しておけば気にしなくていいですね。
私は直接サーバー設定をいじれない(権限が無い)ので、管理者に問い合わせてみます。
ありがとうございます。
No.4
- 回答日時:
>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");
にします。
No.3
- 回答日時:
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# … )
また、phpでも、ヘッダーに
header( 'Content-Type: text/plain; charset=Shift_JIS' );
とか、普通に対処すればよいはずです。
No.1
- 回答日時:
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書き出しのプログラムは、前任の方が作ったものなのでよくわかりません(泣)
一度プログラムを解析してみようと思います。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
VBAでcsvファイルを読み込んで...
-
VBSでCSVのキー項目の取得
-
csvファイルでの日付設定「yyyy...
-
CSV出力して、MS/EXCELで開くと...
-
csvファイルから列を選択しchar...
-
csvファイル 項目数取得
-
COBOLでCSVをインプットにして...
-
CSVファイルを折れ線グラフ化す...
-
エクセルVBA 大容量CSVファイル...
-
CSVファイルの項目行を削除...
-
マクロから出力されるcsvのダブ...
-
バッチでCSVを処理する時、空の...
-
複数のcsvファイルをフォルダご...
-
vb2010でCSVファイルを並び替え...
-
【C#】パス名で無効な文字
-
PHP.laravelについて
-
【エクセルVBA】お願いします。...
-
CSV形式のファイルを読み込んで...
-
CSVファイル作成
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
バッチでCSVを処理する時、空の...
-
【C#】パス名で無効な文字
-
csvファイル 項目数取得
-
マクロから出力されるcsvのダブ...
-
CSV形式での保存時に”文字列...
-
エクセルVBA 大容量CSVファイル...
-
csvファイルでの日付設定「yyyy...
-
【ExcelVBA】UTF-8の文字コード...
-
CSVファイルの項目行を削除...
-
【エクセルVBA】お願いします。...
-
csvファイルを列数ごとに分割す...
-
VBAでCSVファイルのインポート...
-
【エクセル マクロ】読み込ん...
-
エクセル形式のファイルの読み込み
-
巨大なCSVの加工(指定列のみの...
-
Windowsのバッチファイルについ...
-
COBOLでCSVをインプットにして...
-
CSV出力して、MS/EXCELで開くと...
-
CSV形式のファイルを読み込んで...
おすすめ情報