人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

携帯サイトを構築しているのですが、
テンプレートをEUC-JPで作成して
出力する際に、
mb_convert_encoding($data,'SJIS', 'EUC-JP' );
という形で、EUC-JPのデータをShift-Jisに変換してます。

以下のサイトで文法チェックをすると
点数がすごく低いし、内容が文字化けしちゃいます。
http://htmllint.itc.keio.ac.jp/htmllint/htmllint.html

やはりこういうチェックもきちんとしてある程度の点数は
欲しいと思っているのですが、どうしたらいいでしょうか?


●質問者: hopefully
●カテゴリ:就職・転職 ウェブ制作
✍キーワード:EUC-JP JIS SJIS サイト テンプレート
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● Kenz
●23ポイント

文字化けしているって事はヘッダ情報がShift-JISになってないんじゃ・・・

点数が低いのは一つずつ地道につぶすしかないです。

有る段階から一気にあがるのでがんばりましょう

◎質問者からの返答

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

この書式では駄目ということですかね?

<meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS">

にしないと駄目でしょうか?


2 ● y-kawaz
●23ポイント

Content-Type指定をmetaタグでするのはあくまで次善手段で、本来はちゃんと Content-Type"ヘッダー" で指定するべきかと思います。

phpなら↓こうですね。

header("Content-Type: text/html; charset=Shift_JIS");
◎質問者からの返答

すいません。いまいちわかってないのですが、

テンプレートに記述したい場合に

Content-Type"ヘッダー"というのは記述できるのでしょうか?

Content-Type"ヘッダー"というのはプログラムだけで対応??


3 ● Kenz
●22ポイント

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

で良いと思います。

もしかして、ふと思ったんですが、元のテキストがEUC-JPじゃないとか

mb_convert_encoding($data,'SJIS', 'auto' ); にするとどうですか?


4 ● niwa-mikiho
●22ポイント

実際の文字コード、HTTP ヘッダと、HTML に書かれてる文字コードの違いがあるのではないでしょうか?


Content-type: text/html; charset=Shift_JIS\n\n


といったものはプログラムの中での出力です。

変換するときの、変換先文字コード指定

HTML に書かれてる文字コードの指定

HTTP ヘッダの文字コードを明確化

これらを見直してみてください。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ