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

WEBのエンコードに関しての質問です。顧客のWEBサイトが現在 Shift JIS で作られているのが確認できました。サイトを見てもディフォルトの設定で、問題なく見ることができました。先方のサーバへのアクセス件は得られなかったので、データを引き取って、校正のやり取りのため、自社で契約しているレンタルサーバにアップしたところ、設定が同じにも関わらず、適切なエンコードがされずに文字化けを起こしてしまいました。windows XP、mac osx どちらで見ても同様の症状になります。ちなみにエンコードを手動で Shift JIS にすると適切な表示に戻るのですが、どういった原因が考えられるでしょうか?

●質問者: jmos
●カテゴリ:インターネット ウェブ制作
✍キーワード:JIS Mac OS Web webサイト Windows XP
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● しおり
●20ポイント

> 設定が同じ

本当に同じなんでしょうか?

顧客のサーバーでは、HTTP ヘッダーで charset=Shift_JIS を送信していたのに、御社で契約しているレンタルサーバーでは、HTTP ヘッダーで charset を送信していないまたは Shift_JIS 以外の charset を送信しているということはありませんか?

# Firefox なら Live HTTP Headers を使うと簡単に確認できます。

◎質問者からの返答

設定というのは、HTMLの記述の事で、2番の方が指摘して下さっている <meta http-equiv="Content-type" content="text/html; charset=Shift_JIS"> が該当します。

HTMLへの記述があっても、サーバの設定で変わる事があるという事でしょうか? サーバ関連の知識に疎いので、その辺りご教授頂けると助かります。

Firefox をインストールして、Live HTTP Headers を使って確認したところ、気になるところでは下の2行でしょうか?

Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7

Content-Type: text/html; charset=iso-8859-1


2 ● KUROX
●18ポイント

http://www.tohoho-web.com/wwwxx005.htm

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

この1文ぐらいははいってますよね?

◎質問者からの返答

その1文ははいっていました。


3 ● wizemperor
●20ポイント

HTTPヘッダのContent-Typeの文字エンコーディングが適切に設定されていないのではないでしょうか?

.htaccessというファイルを作り、

AddType "text/html; charset=Shift_JIS" .html

と書いてサイトのトップに設置するか、

HTMLの<head>?</head>の間に、

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

と追加してみてください。

XHTMLでXML宣言がある場合は、XML宣言も

<?xml version="1.0" encoding="Shift_JIS"?>

と適切な文字エンコーディングに書き直してください。

◎質問者からの返答

ありがとうございます。試してみます。


4 ● しおり
●15ポイント ベストアンサー

> Content-Type: text/html; charset=iso-8859-1

それが原因です。

エンコーディングは、HTTP ヘッダーが最優先されます。

文字符号化方法の指定

本仕様に適合するユーザエージェントは、文書の文字符号化方法を決定する場合に次の優先順位を守らねばならないということである。優先順位の高いものから低いもの順に以下の通り。

  1. HTTPヘッダのContent-Typeフィールドの、charsetパラメータ。
  2. META要素で、http-equiv属性値がContent-Typeかつvalue属性の値にcharset情報があるもの。
  3. 外部リソースを指している要素に設定されているcharset属性値。

HTTP ヘッダーでの charset の指定は、サーバーに何を使っているかによって方法が異なりますので、サーバー名(とバージョン)を書かれると、より適切な回答が得られると思います。

Welcome! - The Apache HTTP Server Project

◎質問者からの返答

ありがとうございます、解決の糸口が見えてきました。自分でも調べてみますが、サーバは、「Apache HTTP サーバ バージョン 2.0」です。もし対応が分かりましたらご教授頂けると助かります。


5 ● Yota
●20ポイント

話は変わりますが、たぶんWindwosかMac環境で作業されていると思いますが、自分のパソコンにWEBサーバ(Apache)をインストールしたほうが早いですよ。手間賃以外ただです。手動でサービスのスタートストップすればメモリも食わないし。

Apacheはデフォルトでは文字コード指定しないので、metaタグに書いた文字コードをブラウザは選びます。

iso-8859-1をレスポンスヘッダに書くように設定してあればそちらが勝ちます。

http://httpd.apache.org/docs/2.2/ja/mod/core.html#adddefaultchar...

もし興味がおありなら、やってみてください。

http://www.apache.jp/

◎質問者からの返答

具体的にありがとうございます。

> Apacheはデフォルトでは文字コード指定しないので、metaタグに書いた文字コードをブラウザは選びます。

> iso-8859-1をレスポンスヘッダに書くように設定してあればそちらが勝ちます。

そういう設定があるという事ですね、SSHでroot権限を使ってアクセスして、多少の設定はいじれるみたいなんですけど、FTPとSSH以外のアクセス方法が分からないので、それで設定をいじれないのであればお手上げです。

自分のパソコンにというのは興味ありますけど、未熟者なので、趣味で腕を磨いてからの方がいいかもしれません。


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



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