Shift_JISで作成したHTMLファイルが、サーバ上で文字化けします。もちろんメタタグで「content=”text/html; charset=Shift_JIS”」と記述しているのですが、アップロード後にブラウザで見ると、かなりの確率でユニコードで表示されてしまいます。.htaccessによるcharsetの指定ができるらしいのですが、

例えばhttp://www.shtml.jp/htaccess/mojibake.html
では、どこに.htaccessを置くのか、何をどう記述するのかすら判りません。

ファイルはVPNを通じてステージングサーバにアップし、その後管理者によってサーバにアップされる仕組みなので、私はサーバのスペックはわかりません。簡単に文字化けが直せる方法はありませんか?規模もそれなりのサイトですので、あまりスマートでない方法はマズイです。

よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:andi No.1

回答回数448ベストアンサー獲得回数0

ポイント30pt

サーバが海外サーバの場合、勝手にHTTPヘッダにcharsetを設定したりする場合があるようです。

ieHTTPHeadersなどでHTTPヘッダを確認してみては如何でしょうか?


あと経験的にTITLEを含めた最初に登場する文字が半角英数字の場合などに文字化けしやすい気がします。

id:frosch No.2

回答回数24ベストアンサー獲得回数0

ポイント30pt

アップロードに使っているソフトやお使いのサーバによって話が違ってくると思います。


FTPソフトを使用している場合…

文字コードを指定してアップロード、というモードが存在する場合、EUCでアップロードする設定になっていませんか?

id:occapie

いえ、その辺は大丈夫なんです。書き忘れましたが、昨日から急に化け始めたんです。

2005/05/17 20:31:23
id:jouno No.3

回答回数280ベストアンサー獲得回数0

ポイント30pt

.htaccessをおくのは、適用したいコンテンツのあるディレクトリのいちばん上のディレクトリです。


つまり、.htaccessはおいてあるディレクトリと、そこからのサブディレクトリすべてに適用されます。


書くのは、


AddType ”text/html; charset=Shift_JIS” html


だけで結構です。ほかには何も書かなくていいです。


うまくいっているかどうかの検証には、2ばんめのURLでフォームにそのファイルのアドレスを入れてsubmitすると、httpヘッダーを見ることができます。


htaccess適用前にcontentの項目がtext/html;だけでなく、text/html; charset=utf-8と予想しているわけです。適用後に、text/html; charset=shift_jisに変わればいいわけです。


最初の検証でそもそもヘッダーがcharset=utf-8をはいていないなどの場合はほかの対処が必要になるかもしれませんが、サーバ管理者に聞かないとわからないところかもしれません。

http://web-sniffer.net/

View HTTP Request and Response Header

id:occapie

なるほど、ありがとうございます。

htaccessは、どのようなサーバにいきなり置いてもOKなものなのですか?

2005/05/17 20:33:52
id:paihu No.4

回答回数31ベストアンサー獲得回数0

ポイント30pt

サーバの仕様が変わった可能性があります.

metaタグが使用できるかどうか,.htaccessが使用できるかどうかはサーバに依存します.


本来,charsetなどの情報はサーバが吐くべきですので

サーバが情報を出していれば,metaタグは無視されることもあります.


一番手っ取り早いのはunicodeでアップロードすることだとおもいますが…

文字コード変換はそんなに手間でもないので

id:occapie

もちろんunicodeに変換するのが手っ取り早いのは承知しているのですが、数百ページのアップロードが手っ取り早くないのです…。管理者にしつこく問い合わせるのが現状では必要のようですね。

2005/05/17 20:58:33

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません