HTMLの文字エンコードに関する問題と解決方法

このQ&Aのポイント
  • HTMLファイルの文字エンコードを指定するためのmetaタグを設定する際、設定が正しくされていない場合は、正しいエンコードで表示されないことがあります。
  • 例えば、指定した文字エンコードがUTF-8の場合、UTF-8でエンコードされたファイルしか正しく表示されないことがあります。
  • 問題を解決するためには、HTMLファイルのmetaタグでcharset属性を正しく指定し、エンコードされたファイルと一致させる必要があります。
回答を見る
  • ベストアンサー

charset=Shift_JIS

4つのhtmlを作成し metaタグを以下のように記述しました。 <meta http-equiv="Content-Type" content="text/html; charset=SHIFT_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <link rel="stylesheet" type="text/css" href="css/style.css"> <script language="javascript1.2" src="js/openex.js"></script> <link rel="stylesheet" type="text/css" href="css/style.css"> 2つのファイルが、IEにおいてエンコード(UTF-8)を選択しないと見れません。 オーサリングソフトは、ホームページビルダーV9です。 最初に作成したときは、気づかなかったのですが、設定において ”文字エンコードをmetaタグで指定する”の設定項目を自動にしておりました。 すると 2つのファイルが自動で charsetが、UTF-8になってたようです。 その後設定をSHIFT_JISにし、charset=UTF-8となったところは charset=SHIFT_JIS"には、後で書き換えました。 ページを作成する際、テンプレートを作成して 4つのファイルを作成したはずなんですが、 なぜ こうなってしまったのかが わかりません。 charset=SHIFT_JIS"を指定してるのに なぜUTF-8を選択しないと見れないのでしょう? かなり 困っています。何度もファイルを書き換えましたが、解決しません。わかる方 なにとぞご教示ください。

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

  • ベストアンサー
  • liv2007
  • ベストアンサー率81% (378/464)
回答No.2

非常に珍しいケースだと思います。 補足をお願いします。 1.質問をされた時はIEで表示すると表示されない(文字 化けですか?)が、「表示」→「エンコード」でUTF-8を 選択すると表示されるようになる状態。 (ビルダーの設定がUTF-8になっていたので、SHIFT_JIS に設定変更し、charsetも書き換えた。) ※このSHIFT_JISへの設定変更後に、ビルダーでそのHTML を保存しなおしたことはありますでしょうか? 2.TeraPadで確認したところ文字コードはきちんとSJIS で表示されていた状態で、一部大文字になっていたタグ を小文字に変更したら問題なく表示されるようになった。 ※この一部大文字になっていたタグとは具体的にはどの 部分で、小文字への変換と保存は何を使用して行ったの でしょうか? 私もHTMLタグは大文字・小文字のどれで記述しても問題 ないと覚えていましたし、実際そのように言われています。 今回小文字に変換したら問題なく表示されるようになっ たということですが、小文字に変換したから表示される ようになったのではなく、変換後の保存で正しい文字コ ードで保存されたからではないでしょうか? 上でお聞きしましたが、それまではcharsetの書き換え をビルダーで(?)した時にも正しい文字コードで保存さ れなかったのではないでしょうか。 再度TeraPadで大文字に置換して保存しても正しくIEで 表示できるのではないかと思いますので、よろしかった ら確認のためにお試しください。 ビルダーで文字コードを常時正しく保存できないのか、 あるいは単なるトラブルかはわかりません。m(__)m ※同じ手順で再度作成しなおして発生した場合は、ビ ルダー側の問題だと思います。

kuma823
質問者

補足

1について 文字化けではなく、真っ白の状態でした。 はじめは、外部CSSを読み込んでないのかなと思いました。 >「表示」→「エンコード」でUTF-8を >選択すると表示されるようになる状態。 これをしないと 表示されないと言った方が良いかも。 >ビルダーの設定がUTF-8になっていたので、SHIFT_JIS >に設定変更し、charsetも書き換えた。) UTF-8になっていたのではなく、自動になってました。 それでSHIFT_JISを選択し設定しなおして ファイルを保存しました。 これで 大丈夫だと思いましたが、サーバにアップした物を  IEで確認すると 真っ白でエンコードでUTF-8に変更すると表示されるのです。 (この場合ローカル側でhtmlをIEで見ても 同じでした。) >※このSHIFT_JISへの設定変更後に、ビルダーでそのHTML >を保存しなおしたことはありますでしょうか? はい 上にも書いてるように 保存したのです。 2について TeraPadで確認したのは、正しく表示されるようになってからなので SJISになってましたと言うのは、正しくないかもしれません。 要するに エラー時のファイルを見たわけでなく 保存がきちんとされた状態でのファイルを見たので SJISで表示されてるのは 当たり前ですよね。 なので この確認は、できてなかった事になります。 >小文字に変換したから表示されるようになったのではなく、 >変換後の保存で正しい文字コードで保存されたからではないでしょうか? そうかもしれません。それしか考えれないですね。 今回の事は とても勉強になりました。 charset=SHIFT_JIS"を記載するだけではなく、保存時の文字コードが SJISになってるのかの確認も怠らないようにしようと思います。 >※同じ手順で再度作成しなおして発生した場合は、 >ビルダー側の問題だと思います。 切り分けは 大変ですね。おっしゃるとおり 再確認ため ファイルを作成してみましたら 正しく表示されました。同じPCで作成したのもあると思います。 エラーの時は、違うPCで編集もしましたので ビルダーの設定を同じようにするようし、SJISの確認もするように心がけようと思います。 色々ありがとうございました。とても助かりましたし 勉強にもなりました

その他の回答 (1)

  • liv2007
  • ベストアンサー率81% (378/464)
回答No.1

<meta http-equiv="Content-Type" content="text/html; charset=SHIFT_JIS"> ソースの記述のこの部分をShift_JISに直すだけで なくて、ファイルそのものの文字コードを変更しな ければなりませんが、済んでいますでしょうか? 複数の文字コードに対応している「TeraPad」などの テキストエディタで開いてご確認ください。 ※「TeraPad」の場合、ソフト画面のステータスバー (右下)に、現在の文字コードが表示されます。 ※「UTF-8」と表示されていたら、「ファイル」→「 文字/改行コード指定保存」を選択して、文字コード に「SHIFT-JIS」を選んでから「OK」で保存します。 ※metaタグで指定している文字コードと、ファイル 保存時の文字コードが一致するように保存します。 「TeraPad」 http://www5f.biglobe.ne.jp/~t-susumu/library/tpad.html

kuma823
質問者

補足

ありがとうございます。 現在の文字コードは、SJISになっておりました。 この件は、今回 試行錯誤した結果 ソースの一部が、大文字になってるところがありました。 PCを変えて 編集した際に なってしまったと思われます。 しかし、元来 タグに関しては、大文字、小文字の区別はないと思ってたのですが。 この辺が、合点がいきませんが、全て小文字に置換させると 表示することができました。 予断ですが、TeraPadは、私も愛好しております。テラッパーを使いシステムまで書き変えて 愛用してるエディッタです。 小文字に変更したら なぜSHIFT_JISで表示されるようになったのでしょうか?もし、わかるなら ご教示ください。

関連するQ&A

  • charset=UTF-8なのにShift-JISになっちゃいます!

    <META http-equiv=content-type content="text/html; charset=UTF-8"> と記述して、ブラウザ(IE6)で確認したのですが真っ白な画面になり、ブラウザのエンコードを確認した ところShift-JISになっていました。自動選択にしてもShift-JISになってしまいます。 UTF-8でどうしてもウェブを作りたいのですがエンコードがShift-JISにならない方法を教えていただけないでしょうか? 使っているエディタは秀丸です。

    • ベストアンサー
    • PHP
  • Linkタグのcharset属性について

    Linkタグにcharsetという属性があり、 UTF-8を設定してUTF-8エンコーディングのスタイルシートを作成しました。 そしてHTMLドキュメント内に ##################################### <META http-equiv=Content-Type content="text/html; charset=shift_jis"> <LINK href="test.css" type=text/css rel=stylesheet charset="UTF-8"> ##################################### と指定しましたが上手くいきません。 試しにHTMLドキュメントはそのままにして スタイルシートだけをSJISに変更してみたところ 上手くいきました。 Linkタグのcharset属性にはUTF-8は指定できないのでしょうか?それとも指定の仕方が間違っているのでしょうか? ●環境 OS:Win2000 ブラウザ:IE5.5 SP2

    • ベストアンサー
    • HTML
  • ホームページの文字コードについて質問です

    現在、他の方から受け継いだホームページを管理しているのですが、最初の部分が <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <meta http-equiv="content-style-type" content="text/css; charset=Shift_JIS"> <link href="common/top.css" rel="stylesheet" type="text/css"> となっていました。 これ自体は気にならないのですが、外部から読み込んでいるtop.cssを見てみると 1行目に「@charset "utf-8";」と入っていました。 文字コードがhtml側ではcharset=shift_jis"、css側ではcharset "utf-8";となっています。 私はどちらかに揃えるべきだとばかり思っていたのですが、別々でも問題ないものなのでしょうか? また、もしどちらかに揃えるべきであれば、shift_jisとutf-8のどちらに揃えるべきでしょうか? 詳しい方がいらっしゃいましたら、どうぞよろしくお願いします。

    • ベストアンサー
    • HTML
  • Dreamweaverで「shift_jis」→「utf-8」

    DreamweaverMX2004を使用しています。 以前に文字コードをshift_jisで作ったhtmlを全てutf-8に変更したいと思っています。 これを行う場合、Dreamweaverのコードビュー画面で <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> ↓ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> と直接手で書き換えるだけで、文字コードはDreamweaverが自動的に保存しなおしてくれるのでしょうか? (もしくはメニューの「ページプロパティ」でエンコーディングを変更できるようですが、どちらの方法にしても) また、これをDreamweaverではなく、テキストエディタ(TeraPad等)で行う場合、どのような方法になりますでしょうか。 また、UTF-8でhtmlを作成する際、shift_jisとは別の点で何か注意しなければならないことはありますか? よろしくお願い致します。

  • shift_jisとutf-8

    お世話になります。 先日より文字コードのことで、頭を悩ましています。 サイト制作の時に、フルCSSを目指し、他の人が作っていたCSSを利用してDreamweaverで制作を始めました。 その際、文字コードがutf-8になっていたのですが、ブラウザによっては文字化けしていおり、宣言の部分をshift_jisに変更しました。 この部分です。<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> ちなみにDreamwerverではデフォルトの文字コードはshift_jisなので、わざわざ変更しない限り、制作したページはすべてshift_jisで書かれているようです。 また、使わせてもらったCSSのページには一行目に@charset "utf-8";が入っていたのですが、よくわからないのでこの行をはずしてみたところ、CSSの設定が反映されない部分が出てきました。(これが原因かわかりませんが、この一行を入れると直ったみたいで・・) そこで質問なのですが、HTMLの方ではshift_jis、CSSファイルではutf-8という設定でも別にかまわないのでしょうか?(統一しなくてもいいのか?) また、一行目の@charset "utf-8";を省くと問題がありますか? 統一した方がいい場合は、制作したものをすべてutf-8に(またはshift_jisに)するにはどうしたらいいのでしょうか? 別に統一する必要がなければ今回はこのままにして、次回からきちんとしたものを作って行きたいのですが・・ どうぞよろしくお願い致します。

  • Shift_JISでコーディングされたものをUTF-8にして移設したい

    Dreamweaverで昔作ったShift_JISコードのHTMLファイルが幾つかあり、それらをHTMLも組み込めるCMS的なシステムに移そうとしたところ、コードをUTF-8で作る必要があったため、 <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> に変更してみましたが、レイアウトが崩れまくってしまいます。 ブラウザで再度Shift-JISを選択しなおすとちゃんと表示されるのですが‥。 これを解決する方法はあるのでしょうか。。それとも一からUTF-8として作り直した方がよいのでしょうか‥。 宜しくお願いします。

    • ベストアンサー
    • HTML
  • 下記のタグの中で必要ないのはありますか?

    (1) <?xml version="1.0" encoding="UTF-8"?> (2) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> (3) <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> (4) <head> (5) <title>●●●●●●●●</title> (6) <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> (7) <meta http-equiv="Content-Style-Type" content="text/css" /> (8) <meta name="robots" content="INDEX,FOLLOW"> (9) <meta name="description" content="●●●●●●●●"> (10) <meta name="keywords" content="●●●●●●●●"> (11) <meta name="content="●●●●●●●●" /> (12) <meta http-equiv="Content-Script-Type" content="text/javascript"> (13) <meta http-equiv="Content-Style-Type" content="text/css"> (14) <link href="css/A1.css" rel="stylesheet" type="text/css" /> (15) <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

  • HTMLがSHIFT-JISにならない

    いつもお世話になります<(_ _)> 携帯電話用サイトを作っているのですが、HTMLファイルの最初に <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=SHIFT_JIS"> と設定しても、PCでアクセスした時にUTF-8で表示され文字化けされてしまいます。 HTML自体の文字コードはSHIFT-JISで保存されております。 手元に携帯電話がないので、まだ携帯表示は確認していませんが、スマートフォン(Android)で見ても文字化けしています。 なぜcharsetでSHIFT_JISを指定し、ファイルもSHIFT_JISで保存しているのにも関わらず、UTF-8になってしまうのでしょうか・・・? 同じような現象をご存じのかた、是非ともお力添え下さい。 宜しくお願い致します<(_ _)>

    • ベストアンサー
    • HTML
  • charsetについて教えてください。

    StrutsのJSPで開発しています。 ------------------------ <%@ page contentType="text/html;charset=Windows-31J" language="java" %> <%@ taglib uri="struts-bean.tld" prefix="bean" %> <%@ taglib uri="struts-html.tld" prefix="html" %> <%@ taglib uri="struts-logic.tld" prefix="logic" %> <%@ taglib uri="c.tld" prefix="c" %> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Pragma" CONTENT="no-cache"> <META http-equiv="Content-Style-Type" content="text/css"> ------------------------ 以上のように記述した場合、 JSP側のcharsetとMETAタグのcharsetでは、 どちらが優先度が高くなるのでしょうか? 教えてください。

  • ▲▲METAタグについて▲▲

    HTMLとCSSでHPを作るとき。 METAタグはこれでよいでしょうか?? <meta http-equiv="content-type" content="text/html;charset=shift_jis"> <meta http-equiv="content-style-type" content="text/css">

    • ベストアンサー
    • HTML