• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:自分のサイトがsafariで文字化けします)

safariで文字化けする問題について

このQ&Aのポイント
  • Macの10.2.8でホームページ作りをしていますが、safariで文字化けする問題が発生しています。
  • 作成したページはFirefoxやWindowsのエクスプローラでは正常に表示されるが、safariでは文字化けします。
  • 表示設定を変更しても他のページに移動すると再び文字化けし、非常に面倒です。10.4以降のsafariに対応する方法はあるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • nori_007
  • ベストアンサー率35% (369/1048)
回答No.6

#No 1 で解答した者です。 DOCTYPE宣言が関係あるので有れば、下記のページを参考にしてみてください。 http://www.d3.dion.ne.jp/~tiyoko01/sitoku/doctype.html ちなみに ><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitiolink.html p.htmllang="ja"> はあり得ないと思います。 また、lang 属性も関連有りそうですので、下記のページも参考になると思います。 http://www.asahi-net.or.jp/~SD5A-UCD/rec-html401j/struct/dirlang.html http://msugai.fc2web.com/web/tips/html.html lang 属性の指定が間違っている場合、文字コード以前の問題になると思います。 後は、Another HTML-lint gateway で辻褄が合っているか確認する事をお勧めします。 http://openlab.ring.gr.jp/k16/htmllint/htmllint.html Another HTML-lint gateway で80点以上取れれば、文字化けも直るのではないでしょうか。

moegi77
質問者

お礼

迅速な回答・アドバイスありがとうございます。 紹介いただいたサイトで採点してみたところ、Index以外のページのDOCUTYPEタグ・lang属性指定なら問題ないようでしたので、とりあえずその形式に統一しようと思います。 確か、最初にGoLiveで新規サイトを立ち上げると「Index」というページが最初からついているのですが、私の場合それを途中で誤って消してしまい、あらためて同じ名前のページを作り、それをIndexページとして使っていました。 そのことで何か不具合があり、今回挙げたp.htmllang="ja">のようなタグが出てきてしまったのか・・・と推測しますが、どういった経緯でこうなったのかは未だによくわかりません。 また、GoLiveで作ったページのソースを見ると、<body>がなくて最後に</body>だけがあったりと、不安な点がいくつかあるのですが、今までsafari以外のブラウザで文字化けしたことはありませんでした。 まだよくわからないことが多いので、ご紹介いただいたページなどを参考に調べてみたいと思います。 ありがとうございました。

その他の回答 (6)

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.7

> お礼のところに書いた通り、私のサイトはシフトJis指定、レンタル会社さんから借りたBBSはeuc-jp指定になっています。 > 私のサイトを利用する知人たちはサイトとBBSの両方を円滑に見たいわけですが、safariではやはり難しいでしょうか。 Safari 3以降で、これも改善されているはずですが…… どのレンタルBBSかわからないので、たしかなことはいえませんが、古くから運営しているところだと、METAタグで文字エンコードを指定していない可能性が高いでしょう。Safari 2以前ですと、ページ移動のときに、METAタグでの指定がないと、文字エンコードの推測作業をしない傾向があるようです。 そのBBSのソースを、見てみて、METAタグに文字エンコードを指定しているか、確認してみましょう。 最後に、GoLiveは、AdobeがMacromediaと合併して、Dreamweaverを手に入れた時点で、開発をメンテナンスモードにして、フェイドアウトすることが決まっているソフトウェアです。じっさいに使われているウェブブラウザの状況に合わせるという、きめ細かな対処は、すでに望むべくもないのでしょう。

moegi77
質問者

お礼

さらなる回答・解説をくださりありがとうございます。 BBSはOTDさんのところで借りたもので、ライブドアさんと合併する前から使用していました。METAタグでの指定はeuc-jpです。 今のところ、METAタグの部分ではなくDOCUTYPEタグとlang指定に問題があったと推測し、今日一日かけてそこを直してみました。 それでもまた文字化けが起こってしまうようなら、違う可能性を考えなければなりませんが・・・ GoLiveで作り続けることは難しくなりそうなのですね。 初めてサイトを持った時からずっと愛用しているソフトなので寂しいですが、それも流れなので仕方ないと思います。 いろいろと詳しい回答を下さった皆様、ありがとうございました。 おかげさまで、文字化けの原因や経緯が少しわかってきました。 また、タグのことも皆様に教えていただけて助かりました。 今回の質問はここで終了させていただきますが、 またわからないことが出てきた際、書き込ませていただくこともあるかと思います。 その時はまた、お力を貸していただけたらと思います。 ありがとうございました。

  • nori_007
  • ベストアンサー率35% (369/1048)
回答No.5

#No 1 で解答した者です。 まず初めに、Mac OS X 10.2 位まで利用されていた、初期の safari では良く文字化けの問題がありました。Mac OS X 10.4 以降の safari では殆ど文字化けはありません。 現在 meta の指定で文字コードが、charset=Shift_JIS との事ですが、GoLiveCS が生成しているファイルの文字コードが、Shift_JIS になっているか確認してください。GoLiveCS 自身で確認出来ないようで有れば、エディターの Jedit 等で確認することが出来ます。ご確認ください。 ちなみに、meta で宣言している文字コードと、実際のファイルの文字コードが違っているの有れば、safari で無くとも文字化けを起こす可能性は高いです。 制作者として、守らなければならないのは、meta で宣言している文字コードと、ファイルの文字コードは完全に一致させることです。

moegi77
質問者

お礼

詳しいご説明をありがとうございます。 新しいsafariでも文字化けするとすれば、やはり私の作り方のほうに問題がありそうですね・・・。 ご指摘いただいた、生成ファイルでの文字コードの件ですが、GoLiveCSで任意のファイルを開き、ツールバーの「ファイル」から「ドキュメントエンコーディング」を選んで見るとデフォルトで「シフトJis」に設定されていました。 「編集」で「エンコーディングの変更」という項目があったので選んでみましたが、やはりデフォルトで「シフトJis」になっていました。 また、同ファイルをTextEditに放り込んでみたところ、safariで見た時と同じように文字化けしました。 TextEditで文字コードを確かめる方法がわからないのですが、これはやはり、ファイルの文字コードがシフトJisになっていないということでしょうか? どうしたらファイルの文字コードをJisにできるのか、またそれを確認できるのか、よくわかっていないもので、以上の点までしか今のところ調べられていないのですが・・・

moegi77
質問者

補足

すみません、新しいことがわかったので、この回答のお礼の後になってしまいましたが、補足を付けさせていただきます。 この回答のお礼は下に書かせていただきました。ありがとうございます。 私のサイトは、Indexページとそれ以外のページで「DOCUTYPE」のタグが違っていました。GoLiveで普通に作っていたらそうなっていたようなのですが、具体的には、 Indexページ: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitiolink.html p.htmllang="ja"> それ以外のページ: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> ひょっとして、Indexページのタグが文字化けの原因なのではないかと思い、それ以外のページのタグと同じにしてみたところ、画面が真っ白になってしまい、編集できなくなりました。 そこで、ページタイトルをIndex以外にし、別名保存をしてみたところ、画面も元に戻り、タグも他のページと同じになりました。 さらにそれをTextEditに放り込んでみたところ、文字化けしませんでした。 今回の件と関係がありそうな気がするのですが・・・(毎度中途半端ですみません)

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.4

ちょっと実験をしてみました。Jedit(テキストエディタ、Mac OS X付属の「テキストエディット」でもおなじ結果になるでしょう)で、HTML書類を作成し、METAタグでShift-JISを指定し、書類のエンコードはEUC-JPにして保存します。 これをSafri 3(Win、Mac)、Firefox 3(Windows)、Internet Explorer 7(もちろんWindows)で開いてみます。 Safariでは文字化けし、それ以外では文字化けしないと思われたのに、あにはからんや、結果はまったく逆でした。 Internet ExplorerとFirefoxの前身Netscape Navigatorは、METAタグで文字エンコードを指定する規則が制定される前からあるウェブブラウザで、この規則の前まで、エンコードは、テキスト全体から推測するようになっていました。とうぜんエンコードの誤認識が起きるので、ウェブコンテンツ制作側は、あの手この手で誤認識を防ごうとしました。一例として、Shift-JISに使われない文字コードで、EUCでは使われるコードがあります。ページには表示されないHEADタグの中で、そのコードの文字を打ち込むことで、ウェブブラウザに意図したエンコードを推測させるというものがあります。 Firefox、Internet Explorerは、METAタグより推測を優先し、Safariはその逆と思っていたのですが、実験の結果はまったく反対でした。 結論:Safari 3にバージョンアップすれば、文字化けの悩みは解決するでしょう。ただし、Mac OS X 10.4以降にバージョンアップする必要があります。

moegi77
質問者

お礼

詳しいご回答、そして検証までしていただいてありがとうございます。 ウェブブラウザによってそのような違いがあるのですね。 私のサイトはMETAタグ指定がShift Jisなのですが、BBSの部分はレンタル会社さんから拝借しているため、指定が違い、euc-jpになっています。 BBSのほうは通常safariでも見られるようなので、サイトのほうもeuc-jpに変更しようかと考えていたのですが、検証いただいた結果によると、METAタグだけでsafariの文字化けに対処するのは難しいようですね。 また、METAタグを変えた場合、書類のエンコードもあわせて変えなければだめなのですよね?(本当に無知ですみません) まだ変えたことがないのでやり方などがよくわからないのですが、上記検証を拝見する限り、safariは「METAタグと書類エンコードがズレた状態で正常に閲覧できている」ようなので、そこに照準を合わせてしまうと他のブラウザで見られなくなってしまいますよね・・・。 safari3ではそのような不便が解消されているのでしょうか。 そのバージョンがすぐに使えるかどうかわかりませんが、考慮してみます。 アドバイスいただき、ありがとうございます。とても助かりました。

moegi77
質問者

補足

この回答への補足というよりも自分の質問の補足になってしまいますが、この場を借りることお許し下さい。 この回答へのお礼は下に書かせていただきました。ありがとうございます。 お礼のところに書いた通り、私のサイトはシフトJis指定、レンタル会社さんから借りたBBSはeuc-jp指定になっています。 私のサイトを利用する知人たちはサイトとBBSの両方を円滑に見たいわけですが、safariではやはり難しいでしょうか。 今のところ、閲覧するには以下の手順を踏んでいるようです。 safariの環境設定はデフォルトエンコーディングがShift Jisになっています。 1・safariで私のサイトを開くと文字化けしている 2・「テキストエンコーディング」で「Shift Jis」を選ぶ 3・文字化けが直る 4・BBSに飛ぶと今度はそこが文字化けしている 5・再び「テキストエンコーディング」で「デフォルト」に戻す 6・BBSからサイトへ戻ると、今度は文字化けしていない 実際に私も操作してみましたが、6がどうにも謎です・・・。 また、2も謎です。 デフォルト=シフトJis設定なのに、わざわざ選び直さなければ文字化けが直らないというのがとても不条理に思えます。 その後ブラウザを閉じ、もう一度私のサイトを表示してみたところ、今度は文字化けしていませんでした。 ただ、再起動後などは試していないのでわかりません。 どうなっているのかまったくわからないのですが、やはりsafariのバージョンの問題なのでしょうか・・・。 他のサイトは文字化けしないようなのですが、METAタグを見ても私のところと違いがなく、ほとんどのサイトさんではシフトJisを使っています。 そうすると他に、私の作り方のほうに問題があるのではという気がしてくるのですが・・・。 以下、参考までに自分のサイトのMETAタグ部分です。 <meta http-equiv="content-type" content="text/html;charset=shift_jis"> <meta name="generator" content="Adobe GoLive 6"> GoLiveで作っているので下行のタグが付いてしまうのですが、これも原因なのでしょうか・・・?

noname#214300
noname#214300
回答No.3

わざわざお礼を頂きありがとうございます。 一通りネットで情報を集めてみましたが、Safariの仕様(?)らしく、完治は難しい様です。 HTMLの文字コードをシフトJISではなく、EUC-JPやUTF-8に変えてみるという方法は取れないでしょうか。これは、METAタグの宣言を書き換えるのと同時に、GoLive側でも同じ文字コードで出力しなければなりません。 または消極的な方法になるのですが、ご友人の環境で文字化けしないサイトをいくつか教えて貰い、それと同じ<HEAD>セクションに変えて試してみる方法もあるかと思います。 有名なサイトなどは、色々と隠し技を使っていますので、参考になるかと思います。 しっかりとした回答をご呈示出来ず、大変申し訳ありません。

moegi77
質問者

お礼

ご丁寧に説明いただきありがとうございます。 とても助かります。 私もsafariに関するサイトをいくつか見てみたのですが、文字化けの問題は昔からつきまとっているようで、今回の件も、これが万全という策は難しそうですね。 今たまたま見たサイトでは、safariの環境設定を変更してシフトJISにしてしまうのが良いと書かれていました。 確かにシフトJISで設定されているサイトは多いと思うのですが、知人たちのブラウザではその中でも私のサイトだけが文字化けするとのことで、そのあたりも少し引っかかります・・・。 EUC-JPやUTF-8はまだ試していないので、アドバイスを参考に、文字化けしないサイトのHEADセクションを見てみて、いくつか試してみようかと思います。 ありがとうございました。

noname#214300
noname#214300
回答No.2

HTMLは<HEAD>のところで文字コードの宣言を行います。 <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS"> 上の文では、このHTMLはシフトJISで書かれてますよ、とブラウザに教えているわけです。 この宣言と実際にGoLiveが吐き出している文字コードが違う場合、ブラウザによっては表示がおかしくなります。 ご質問によれば、実際の文字コードはシフトJISで書き出しているようですので、作成されているHTMLの<HEAD>部分を確かめてみて下さい。 たぶん、他のコード(UTF-8だの)が宣言されているのだと思います。 もしもそういった宣言がない場合、上記の<META>~をそのまま<HEAD>にコピーしてみて下さい。 なお、ツールが吐き出すHTMLが必ずしも”正しいHTML”であるとは限りませんので、もしもゆとりがあるようでしたら、HTMLの検証サイトなどを利用して、公開されているHTMLが文法的に正しいかどうかチェックされる事をお勧めいたします。

moegi77
質問者

お礼

詳しい回答をありがとうございます。 <HEAD>のその部分を見るのですね。非常に助かります。 自分のHTMLを確かめたところ、ご紹介いただいた <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS"> と全く同じ一文になっていました。 つまりShift_JISで宣言しているようなのですが、 そうすると問題は他にあるということでしょうか? safariのブラウザは、デフォルトの文字エンコーディングが欧米になっていることが多いと聞きますが、ひょっとしてそちらに合わせたほうがいいのでしょうか?

  • nori_007
  • ベストアンサー率35% (369/1048)
回答No.1

文字コードの指定はどうなっていますか?

moegi77
質問者

お礼

ありがとうございます。Shift_JISになっているようなのですが・・・どう操作したらいいものやら・・・。初心者ですみません^^;

関連するQ&A