ある事情で、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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- その他(プログラミング・Web制作) Sikulix2.0.5(Jython2.7.3)でcsvを読込WEB検索条件にpasteで文字化け 1 2023/03/31 11:02
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- その他(プログラミング・Web制作) pythonのpandasのcsvの外部結合(outer_join)した際に列が想定とは異なる事象 1 2022/05/25 13:23
- その他(スマートフォン・携帯電話・VR) ファイル文字化け直せますか? 5 2023/03/19 11:24
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
CSV形式での保存時に”文字列...
-
バッチでCSVを処理する時、空の...
-
複数のcsvファイルをExcelに一...
-
csvファイル 項目数取得
-
エクセル形式のファイルの読み込み
-
EXCEL|csvで保存→開くcsvを閉じる
-
CSV形式のファイルを読み込んで...
-
【Excel】csvファイル取込み VB...
-
ACCESS CSVファイルをインポ...
-
特定文字を入ってるCSVの特定の...
-
マクロから出力されるcsvのダブ...
-
csvファイルから列を選択しchar...
-
csvファイルのデータの一部を取...
-
データ解析ソフトRでのファイル...
-
【ExcelVBA】UTF-8の文字コード...
-
複数のCSVファイルのAccessテー...
-
VB6.0 CSVファイル読み込みに...
-
VBAでCSVファイルのデータを集...
-
VBSでソート&ファイル分割
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマ区切りのCSVファイルから...
-
複数のcsvファイルをExcelに一...
-
CSV形式での保存時に”文字列...
-
csvファイル 項目数取得
-
csvファイルでの日付設定「yyyy...
-
マクロから出力されるcsvのダブ...
-
バッチでCSVを処理する時、空の...
-
csvファイルのデータの一部を取...
-
エクセルVBA 大容量CSVファイル...
-
csvファイルを列数ごとに分割す...
-
PHP.laravelについて
-
COBOLでCSVをインプットにして...
-
COBOL85でのCSVファ...
-
複数のCSVファイルのAccessテー...
-
データ解析ソフトRでのファイル...
-
【C#】パス名で無効な文字
-
VBAでcsvファイルを読み込んで...
-
特定文字を入ってるCSVの特定の...
-
CSVファイル作成
-
【エクセル マクロ】読み込ん...
おすすめ情報