• ベストアンサー
  • すぐに回答を!

HTMLの文字化け

自分で立ち上げたサーバへWindoswで作成したHTMLをアップしてブラウザから表示の確認をしてみたところ、日本語が文字化けてしまいました。 ヘッダーには <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> として、文字コードをUTF-8にしてあるのですが、この部分を <meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS" /> とShift-JISにしてみると、日本語の文字化けが解消します。 できればcharset=UTF-8の状態で文字化けせずに表示してくれるようにしたいのですが・・・ どなたか原因がお分かりになる方いらっしゃいましたら、ご教授のほどお願い致します。 テキストエディタはK2Editorを使用しており、「保存時の文字コードと改行種類の変更」でHTMLファイル自体の文字コードは「Shift-JIS」、改行コードは「CRLF」としております。 サーバは、CentOS5.4を使用しており、 コマンドで # printenv | grep LANG の結果は、 LANG=ja_JP.UTF-8 となっております。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数300
  • ありがとう数3

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

  • ベストアンサー
  • 回答No.1

こんにちは、既にご質問者様自身が答えをだしているように思えますが、 Windowsは、一般的に文字コードがShift-JISです。 なので、それを、そのまま、UTF-8の環境に持っていけば当然文字化けがおこります。 Windowsで作成したファイルを再度エディターで開いて、UTF-8形式で保存しなおして、アップロードすれば文字化けはなくなると思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

hjonathanさん 迅速なご対応、ありがとうございます。 >Windowsで作成したファイルを再度エディターで開いて、UTF-8形式で保存しなおして、アップロードすれば文字化けはなくなると思います。 上記の通りやってみたところ、文字化けせずに表示することができました。 どうもありがとうございます。 Windowsが一般的にShift-JISでUTF-8の環境に持っていけば当然文字化ける、ということにつきまして納得しました。 が、どうも本当にこうするのしかないのか?という疑問と言いますか、納得いかないところがございます。 以前、ウェブ制作会社でプログラマとして働いていたとき、テンプレートは「Shift-JIS」、JavaScriptやphpといったプログラムファイルは「EUC」で作るように、と言われてきたので、テンプレートをUTF-8にしてサーバにアップすることがどうもしっくりときません。 色々と試した結果、HTML側で <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> と記述した状態で文字化けない方法は他にはなさそうな感じで、 hjonathanさんが仰る通り、一度UTF-8にしてアップするしか今のところ分かりませんので、ご教授いただいた方法で対応させていただきます。 本当に、どうもありがとうございました。

関連するQ&A

  • 文字化けを解決したい

    サイトを持つ管理人です。タグなどについてはかなり初心者です。 iPhoneなどの海外OSから閲覧すると文字化けしてしまうという報告を受けて、タグを色々いじっています。 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">を追加してみたのですが、これ単品だと私のPCから閲覧したときに文字化けしてしまいました。 そのため<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">と<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">を並べてみたのですが、これで海外OSからも文字化けを起こさなくなったのでしょうか? こんな感じのタグです↓ <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <META NAME="GOOGLEBOT" CONTENT="NOINDEX, NOFOLLOW,NOARCHIVE"> <META NAME="ROBOTS" CONTENT="NOARCHIVE,NOINDEX,NOFOLLOW"> <meta name="viewport" content="width=380, maximum-scale=1.6" /> <title>練習</title> </head> 全てのスマホからもサイトを閲覧出来るようにするにはどうしたら良いでしょうか?それとも、全てのスマホから文字化けを防ぐことは不可能なのでしょうか? お知恵をお貸しください。

  • はじめまして。

    はじめまして。 momo_chi_chiと言います。 自分で作成したHTMLをサーバに上げてWebブラウザ(IE8)でみるとWebブラウザのエンコードが 間違った文字コード(UTF-8)を自動選択し、文字化けして困っています。 手動で正しい文字コードを選択すると文字化けは直るのですが、毎回同じページにアクセスする度に Webブラウザが間違った文字コードを選択して困っています。 HMLTファイルの<META>タグには、 <meta http-equiv="Content-Type" content="text/html; charset=Shift-JIS"> と書き、ファイルの文字コードもShift-JISで保存しております。 アップしているサーバは,CentOS5.4で LANGはja_JP.UTF-8となっています。 一度、ブラウザのキャッシュを削除して、再度IEを開いてアクセスしてもダメでした。 対処方法が分かる方がいましたら教えてください。

    • ベストアンサー
    • HTML
  • 文字化けについて質問です。

    文字化けについて質問です。 例えば、 text.txt(あいうえお) とテキストファイルにあります。 そのファイルを読み込んで、 echo "$a"; で表示すると、文字化けします。 ファイルの中身がaaaaaaのように英数字なら普通に表示されるのですが・・・ <meta http-equiv="Content-Type" content="text/html; charset=shift-jis" /> と今は定義しています。 utf-8にしても文字化けしてしまいます。 解決策はあるでしょうか?

    • ベストアンサー
    • HTML

その他の回答 (1)

  • 回答No.2
  • k_kota
  • ベストアンサー率19% (434/2186)

>以前、ウェブ制作会社でプログラマとして働いていたとき、テンプレートは「Shift-JIS」、JavaScriptやphpといったプログラムファイルは「EUC」で作るように、と言われてきたので、テンプレートをUTF-8にしてサーバにアップすることがどうもしっくりときません。 なんでそうするのか考えたことはありますかね。 そもそもOSの文字コードってなんなのでしょうか。 OSはそれぞれデフォルトの文字コードが違います。 winはSJISで業務系UNIXはEUC、LINUXはUTF-8です。 なので、テンプレはSJISでプログラムはEUCなのでしょうね。 (ここまで言ってもピンと来ないなら後は自分で調べて下さい) そして、charsetはその文書の文字コードをブラウザに教えるところです。 なので、基本的にOSが読み込む処理が無ければ文字コードはなんでもよくて、 中身と一致していればいいのです。 それぞれの意味が分かれば最初の回答者様が不思議に思った内容も理解できると思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

k_kotaさん ご回答、どうもありがとうございます。 仕事をしていたときは、WindowsはShift-JISでUNIXはEUCといったOSの文字コードについては理解しておらず、テンプレートとプログラムで文字コードを変える理由について考えておりませんでした。 k_kotaさんのご回答で、テンプレートとプログラムの文字コードを変える理由がなんとなく理解できましたが、自分でもOSの文字コードについて、HTMLについて調べてみようと思います。 色々と勉強させていただきました。 どうもありがとうございます。

関連するQ&A

  • charset=UTF-8 にすると文字化けしちゃいます!

    <META http-equiv=content-type content="text/html; charset=UTF-8"> とすると、ブラウザ(IE6)画面で見事に文字化けします。 アップロード先サーバーの都合上、UTF-8でなければなりません。 文字化けさせない方法をご教授くださいませ。 エディタはTeraPadとPeggyPad、OSはWinXPです。

  • Dreamweaverでソースが文字化けしてしまいました。

    Dreamweaverでソースが文字化けしてしまいました。 メタタグが <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> になってたので、 <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> に修正して、保存して終了したあとに、再度Dreamweaverで開いたところ、ソースが全部文字化けしてしまいました。 元に戻そうと、メタタグをもとのutf-8に戻しても直りません。 メタタグをShift_JISにして、ページプロパティのエンコーディングをShift_JISに合わせると、ソース全部が文字化けしていた状態は直ったんですが、ところどころ文字化け状態のままになっています。 完全にもとの状態に戻したいのですが、どうしたら文字化けが直るのでしょうか。 教えてください。 よろしくお願いします。

  • 文字コード変更による、文字化け・レイアウト崩れ

    文字コードをShift-jisからEUC-JPに変更したいのですが、 HTML・CSSに処理を施したら文字・レイアウトが大幅に崩れてしまいました。 以下のように変更したのですがやり方に間違いはないでしょうか? [HTML] <meta http-equiv="Content-Type" content="text/html; charset=Shift-jis"> ↓↓ <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> [CSS] @charset "shift_jis"; ↓↓ @charset "euc-jp"; また、ブラウザの表示⇒エンコードで(Shift_jis)を選択すると今までどおり正常に表示されます。(HTMLとCSSにはeuc-jpの記述にも関わらずです) これは文字コード変更したと思い込んでしまっているのでしょうか? 解決策お願いします。 あまり知識がありませんので、分かり易く教えていただけるとありがたいです。 ちなみにエディタはHTML Project2を使用しています。

  • 一括置換で、すべてが文字化け!

    こんばんわ。 HTMLのcharsetをドリームウィーバーで一括置換したところ、 文字化けしてしまいました。 <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> を下記のように一括置換で変更しました。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> UTF-8に一括置換で変更しました。 一括置換したところ、一括置換したHTMLのソースが全て 文字化けしてしまいました。 なぜでしょうか? 手打ちで変更しても何も問題は無かったのですが、一括置換を すると文字化けしてしまいます。 ドリームウィーバーの問題なのでしょうか? ドリームウィーバーはCS3を使用しています。 ご存じのかたがいらっしゃいましたら、ご助言頂けませんでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • ファイヤーフォックスでの文字化け

    <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <meta name="keywords" content="" /> <meta name="description" content="" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <link rel="stylesheet" href="css/import.css" type="text/css" /> </head> </head>までの部分をコピーペーストしてみましたが、昨日、<body>~<body>部分で更新をしようと思い、予定情報の終了した分の文字を削除して、ローカルで確認したところ、そのページすべてが文字化けしていました。アップロードしても文字化けはなおりませんでした。 因みに文字コードはUTF-8に設定して(いるつもり?)作成しており、これまでIEもグーグルクロームもファイヤーフォックスもしばらく使ってそのようなことはありませんでしたので、何が原因なのかわかりません。(現在、ファイヤーフォックスです。) 詳しい方教えて下さい!!

    • ベストアンサー
    • HTML
  • HTMLのソースで「↑」になっているのは?

    ソースを見たときに、以下のように↑で区切って表示されることがあります。 <html lang="ja">↑<head>↑<meta http-equiv="Content-Type" content="text/html; charset=utf-8">↑<title> 【質問1】これは、(1)わざと↑が入るようにしているのですか? それとも(2)勝手に↑で区切られてしまうのですか? 【質問2】このようなソースを、以下のような↑なしのソースに変換する方法ってあるのですか? <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>

  • 更新を繰り返すと文字化けが起きてしまいます...

    お世話になります PHP4でHPを作成しています 文字化けに関して質問させて下さい PHPで作成したページの更新をすると 5回に1回の割合で文字化けが発生してしまいます EUC-JPで作成したPHPファイルを表示するので ファイルの先頭に  <? header(\"Content-Type: text/html;charset=EUC-JP\"); ?>  <html lang=\"ja\">  <head>  <meta http-equiv=\"content-type\" content=\"text/html; charset=EUC-JP\">  <meta http-equiv=\"content-style-type\" content=\"text/css\">  <meta http-equiv=\"content-script-type\" content=\"text/javascript\"> と指定してから 他の処理が実行されるようにしているのですが…。 何回か更新を繰り返すと文字化けを起こしてしまいます。 文字化けを起こした時にソースを表示すると 日本語が正しく見れる状態になっていたので シフトJISになってしまっているようで… 宜しくお願いします

    • 締切済み
    • PHP
  • 見るパソコンによって文字化けする

    自分のHPを持っています。 構成は縦の2分割フレームで、基本文字コードは日本語SHIFT-JISです。 これを、片フレームの文字コードがUnicode(UTF-8)になると、見るPCによってちゃんと見えたり、文字化けして見えたりします。 文字化けした時には、手動にて当該フレーム上でUTF-8にエンコード指定してやるとちゃんと表示されます。 ブラウザはIE7 for WinXP SP2でエンコードの設定はどのパソコンも同じになっています。 UTF-8の方のソースには 『<META http-equiv="Content-type" content="text/html; charset=UTF-8" />』 を入れてやってますが状況は先に述べた通りです。 フレームに表示させず、普通に一枚で表示させるとちゃんと表示されます。フレームの時のみ状況がまちまちのようです。 どのパソコンで見ても適切なエンコードが選ばれるようにするにはどうすればいいのでしょうか? ちなみに、UTF-8のソースは、GoogleMapsをHTML化した物です。

  • HTMLモードでの文字コードの変更について

    ホームページV4 Shift_JIS を UTF-8 に変更するにはどのようにすればいいのですか? <meta charset="shift-JIS"> → <meta charset="UTF-8">との回答していただきありがとうございます。ただ <meta http-equiv="Content-Type" content="text/html; ch。arset=Shift_JIS"> をどのように変更したらいいのかわかりません。HTMLモードで書き換えても文字化けします。よろしくお願いします。 ※OKWAVEより補足:「ソースネクスト株式会社の製品・サービス」についての質問です。

  • 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