• 締切済み

ヘッダー部分の文字化けについて

現在、PHPを勉強中の身です。 「header.tpl」でヘッダー部分を表示させているのですが、 文字が化けてしまい、直すことができないです。 「UTF-8」で表示するようにしているはずなのですが、 添付した画像のようになってしまいます。 また、エンコードを「日本語(ECU)」に変更すると、 「給与WEB管理」は文字化けしてしまい、 「[文字化けした部分]」は表示されます。 このような状態から、データを読み込んではいると思いますが、 どこを確認すればよいのか、ご教授願えませんでしょうか? どうぞよろしくお願いいたします。 <header.tpl> <!DOCTYPE html> <html> <head> <title> {#app_title#} [{$smarty.session.user_name|escap}|{$smarty.session.bu_name|escape}{$smarty.session.ka_name|escape}] </title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <link rel="stylesheet" type="text/css" href="kyuyo.css" /> </head> <body> <h1> {html_image file="./image/title.gif" width="30" height="30"} {#app_title#} {html_image file="./image/title.gif" width="30" height="30"} </h1> <hr /> <バージョン> PHP:5.2.8 Smarty:2.6.26 MySQL:5.0.45

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

>>どこを確認すればよいのか 「header」関数あたり? >>「UTF-8」で表示するようにしているはずなのですが、 >><meta http-equiv="Content-Type" content="text/html; charset=utf-8"> コレよね。 コレはあくまで、この文章はUTF-8で書かれてんよ。ってのを、くっつけてやってるだけ。 仮にだけど、中身がSJISだろうが、Unicodeだろうが、「UTF-8なんだろ?じゃあUTF-8として開くぜ!」ってコトです。 出力してるデータが何形式なのか。は、また別なので、 ・データベース上、保持しているデータ ・サーバからページへ吐き出すデータ ・ページに表示するデータ の形式を気にしてやらなきゃいけない。 のがPHPかな。と思ってるので、メタタグの表示形式指定だけじゃ不足してるんだと思いますよ。 ってのが、今のとこの自分の理解です。

usako_yuka
質問者

補足

STICKY2006様 ご回答ありがとうございます! ご指摘いただいたところを確認いたします。 少しお時間をいただくと思いますが、 またご報告いたします!

関連するQ&A

  • PHP(smarty)についての質問(文字化け)

    あるサイトでsmartyを勉強中ですが、そのサンプルファイルを実行したところ、 文字化けが発生して困っています。 ・form.php←お問い合わせ用テンプレートファイルの指定 ・form.tpl←お問い合わせ情報を入力させるテンプレートファイル ・template.tpl←テンプレートファイルを表示させるテンプレートファイル form.phpから、お客様情報を入力させるためのテンプレートファイル(form.tpl)を指定し、 template.tplにそれを表示させるのが処理概要です。 実行すると、タイトルの"問い合わせフォーム"は表示されますが、 それ以下のform.tplの日本語部分が文字化けします。 template.tplで{include file=$content_tpl params=$params}の処理で form.tplを取り込んでいますが、その時文字コードがおかしくなっている気がします。 form.tplに対して文字コード(UTF-8)が有効になっていないと思われます。 実験的に、{include file=$content_tpl params=$params}を削除して、 そこにform.tplの記載をすべて記述すると文字化けは起こりませんでした。 文字コードの指定をform.tplに対しても有効にするにはどのように修正すればよろしいでしょうか。 以下にソースファイルを記載します。 ★form.php <?php // 共通の設定を読み込む require_once( 'common.php' ); // Smartyオブジェクト取得 $smarty =& getSmartyObj(); // ひな形のSmartyテンプレートでincludeするテンプレートを指定 $smarty->assign( 'content_tpl', 'form.tpl' ); // パラメータを渡す $smarty->assign( 'params', array( 'types' => array( 'request' => '意見、要望', 'question' => '質問、問い合わせ', 'other' => 'その他' ) ) ); // ページを表示する $smarty->display( 'template.tpl' ); ?> ★form.tpl <p>お問い合わせやご意見・ご要望を以下のフォームにご記入の上ご送信ください。</p> <form method="post" action="post.php"> <dl> <dt>お名前</dt> <dd> <input type="text" name="name" value="{$params.name|escape:'html':'UTF-8'}" /> {if $params.errors.name} <p class="error-message">名前を入力してください。</p> {/if} </dd> <dt>メールアドレス</dt> <dd> <input type="text" name="address" value="{$params.address|escape:'html':'UTF-8'}" /> {if $params.errors.address} <p class="error-message">アドレスが不正です。</p> {/if} </dd> <dt>お問い合わせ種類</dt> <dd> {html_options name="type" options=$params.types selected=$params.type} {if $params.errors.type} <p class="error-message">お問い合わせ種類が不正です。</p> {/if} </dd> <dt>お問い合わせ件名</dt> <dd> <input type="text" name="title" value="{$params.title|escape:'html':'UTF-8'}" /> {if $params.errors.title} <p class="error-message">件名を入力してください。</p> {/if} </dd> <dt>お問い合わせ内容</dt> <dd> <textarea name="content" cols="60" rows="5"> {$params.content|escape:'html':'UTF-8'} </textarea> {if $params.errors.content} <p class="error-message">お問い合わせ内容を入力してください。</p> {/if} </dd> </dl> <input type="submit" value="送信する" /> </form> ★template.tpl <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.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> <style type="text/css"> {literal} .error-message{ margin:5px; font-size:80%; color:red; } {/literal} </style> </head> <body> <h1>問い合わせフォーム</h1> {include file=$content_tpl params=$params} </body> </html> ★common.php <?php define( 'SMARTY_DIR', 'C:/xampp\php/smarty/libs/' ); require_once( SMARTY_DIR .'Smarty.class.php' ); // Smartyオブジェクト取得 function & getSmartyObj() { static $smarty = null; if( is_null( $smarty ) ){ $smarty = new Smarty(); $smarty->template_dir = 'C:/xampp/php/smarty/templates/'; $smarty->compile_dir = 'C:/xampp/php/smarty/templates_c/'; $smarty->config_dir = 'C:/xampp/php/smarty/configs/'; $smarty->cache_dir = 'C:/xampp/php/smarty/cache/'; } return $smarty; } ?>

    • ベストアンサー
    • PHP
  • phpファイルのヘッダ

    phpのファイルからヘッダの部分を消したいのですが、 //****************************** // print XML serialize //****************************** // header("Content-Type: application/xml; charset=UTF-8"); // print $resp->serialize(); // printing XML という部分と //ヘッダフッタ $smarty->assign("S_header", DF_header); $smarty->assign("S_footer", DF_footer); $smarty->display("../templates/ensen_list.tpl"); この二箇所しかありません。 このどちらかをいじればヘッダは消せるのでしょうか?

  • 文字化けを解決したい

    サイトを持つ管理人です。タグなどについてはかなり初心者です。 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> 全てのスマホからもサイトを閲覧出来るようにするにはどうしたら良いでしょうか?それとも、全てのスマホから文字化けを防ぐことは不可能なのでしょうか? お知恵をお貸しください。

  • 検索結果 文字化け

    以下のような検索結果の文字化けします。ソース等でおかしいところがありますでしょうか?ご伝授ください!宜しくお願いします。 (以下、検索結果) ' •¶ Z'î EƒŠƒtƒH ' •¶ Z'î EƒŠƒtƒH [ƒ€ E“Œ‹ž“s'†–ì‹æ y'å iŒš'z“X HOME z“Œ‹ž‚ÅŒš‚Ä‚é' •¶ Z'î `Œš' zŽm‚ªŒš‚Ä‚é ä•v‚ȉƂ‚è E E EŒËŒš‚Ä Z'î A‹¤“¯ Z'î“TM‚Ì Z‚Ü‚¢‚Ì‚±‚ƂȂ炨‹CŒy‚ É‚¨–â‚¢ ‡‚킹‚‚¾‚³‚¢ I'†–ì‹æ A—û”n‹æ A TM•À‹æ A ¢“c'J‹æ A”‹´‹æ A–Ú •‹æ ... (以下、ソース) <HTML> <HEAD> <META name="GENERATOR" content="IBM HomePage Builder 2001 V5.0.4.1 for Windows"> <META name="Keywords" content="・・・・・・・・・・・・・・・"> <META name="description" content="・・・・・・・・・・・・・・"> <META http-equiv="content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="content-Style-Type" content="text/css"> <META http-equiv="content-Style-Type" content="text/javascript"> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <TITLE>・・・・・・・・・・・</TITLE> <STYLE type="text/css"> <!-- --> </STYLE> </HEAD> <BODY bgcolor="#FFFFFF"> <P align="center"></P> <P align="center"><IMG src="image215.gif" border="0" width="514" height="61"><FONT color="#000040" face="ARP丸ゴシック体M"><BR> </FONT><IMG src="image112.gif" width="209" height="16" border="0"><BR> <BR> <BR> <BR> <BR> </P> <DIV align="center"> <TABLE> <TBODY> <TR> <TD align="center" width="276" height="199"><A href="b_index_page3.htm"><IMG src="daishi-logo.jpg" width="425" height="278" border="0"></A></TD> </TR> </TBODY> </TABLE> <IMG src="newimage1z1.gif" width="650" height="150" border="0" usemap="#newimage1z"><MAP name="newimage1z"> <AREA shape="default" nohref> </MAP><BR> <B><FONT color="#ff0000"><A href="b_index_page3.htm"><IMG src="logo1.jpg" width="98" height="49" border="0"></A></FONT></B><BR> <BR> <br> <I><B><BR> <BR> </B></I><I><B><IMG src="image4.gif" border="0" width="340" height="20"><BR> </B></I></DIV> </BODY> </HTML>

  • 文字化け

    phpソースだけなら正しく表示できるのですが、 htmlソースを加えるとphpソースの部分が文字化けし、画像が表示できません。どうしてなのでしょうか? 画像を扱わないプログラムは、文字化けしないのですが、GDで画像を扱うと文字化けしてしまいます。 文字化けする↓ <html><head><title>sample</title></head> <?php $width=$_GET{'wid'}; $height=$_GET{'hei'}; $red=$_GET{'red'};$green=$_GET{'gre'};$blue=$_GET{'blu'}; $text=$_GET{'tex'};$size=$_GET{'siz'}; $red1=$_GET{'red1'};$green1=$_GET{'gre1'};$blue1=$_GET{'blu1'}; $angle=$_GET{'ang'};$x1=$_GET{'x1'};$y1=$_GET{'y1'}; header("Content-type: image/jpeg"); $im = imagecreate($width,$height); $bground = imagecolorallocate($im, $red,$green,$blue); $text_c = imagecolorallocate($im,$red1,$green1,$blue1); imagettftext($im, $size, -$angle,$x1,$y1, $text_c,"Century",$text); imagepng($im); ?> </form></body></html>

    • ベストアンサー
    • PHP
  • 検索結果が文字化けしてしまう。

    数週間前にアップロードしたサイトを検索にかけると文字化けして出てきてしまいます。 アップした当初は問題なかったのですが…三日前から文字化けすようなってしまいました。 文字コードがおかしいのか思ったんですが…原因がわからなくて困っています。 どなたか教えてください!! 下記がソースです↓ <!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 name="generator" content="Adobe GoLive 4"> <meta name="description" content="○○○○"> <meta name="keywords" content="○○○○"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>○○○○</title> <!-- ImageReady Styles (indexnew.psd) --> <!-- End ImageReady Styles --> <style type="text/css"> <!-- #index-01 { position: absolute; top: 0px; left: 0px; width: 333px; height: 95px; visibility: visible }--- このあとも続きますが、問題解決に必要であればまた載せます。よろしくお願いします。

    • ベストアンサー
    • HTML
  • phpMyadminの文字化け

    さくらレンタルサーバを利用し、問合せフォームを作成しています。 問合せ内容をプロシージャを使いデータベースに格納しています。 タイトルにもありますようにデータベース格納後phpMyAdminで見た際に文字化けしてしまいます。 半角数値は見れるのですが、日本語は文字化けしてしまいます。 環境は以下の通りです。 ■さくらレンタル DB:MySQL クライアントのバージョン: 5.1.30 MySQL の文字セット: UTF-8 Unicode (utf8) MySQL 接続の照合順序 utf8_general_ci テーブルの照合順序utf8_general_ci カラムの照合順序utf8_general_ci ■Web サーバ Apache(バージョン不明 phpMyAdminのバージョン3.2.3 PHPバージョン5.2.11 データベース接続方法 PDOを使用し、プロシージャーをコールしています。 プロシージャーのクリエイト文では文字コードのセットはしていません。 phpMyAdminからプロシージャを直接コールすると文字化け致しません。 $this->dbh = new PDO(DB_NAME, DB_USER, DB_PASSWORD); $this->dbh -> query("SET NAMES UTF-8;"); 上記で接続しています。 ■PHPファイル phpのエンコードはShift-JIS メタタグは以下の用にしています <meta http-equiv="Content-Type" content="text/html; Shift_JIS" /> <meta http-equiv="Content-Language" content="ja" /> プロシージャのパラメーター設定時に mb_convert_encoding($_SESSION['other'],"UTF-8") セッションの値をUTF-8にエンコードして設定しています。 上記のようになっております。 メタタグでUTF-8に設定すればいいのでしょうか? 設定またはエンコード方法で解決できるのでしょうか? 以上、よろしくお願いします。

    • ベストアンサー
    • MySQL
  • 日本語が下記のように文字化けしました。

    サブライム3を使っていた所、突然日本語が下記のように文字化けしました。 サブライム上では文字化けしていません。 ブラウザ、DWで見るとします。 バグで文字コードが変わるなどあるのでしょうか? DWで見るとUTF8と表示されています。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="ja" xml:lang="ja" dir="ltr" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="robots" content="noindex,noimageindex,nofollow" /><!--onlysample--> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="content-style-type" content="text/css; charset=utf-8" /> <meta name="viewport" content="width=device-width,initial-scale=1.0" /><!--mobile--> <meta name="keywords" content=" ,** h, Q " /> <meta name="description" content=" ɲ Q f ϡ ** h ɲ Фؤ ߤη ؤ Q ⰸ ڤ Ƥ ޤ Ф H Ҥ Ĥ꤯ " /> <title> k3 , o Ϥ ɲ Ф ߤ ڤ ޤ | ɲ Q f </title> <!--script lightbox--> <link rel="stylesheet" href="lightbox.css" type="text/css" /> <!--main--> <link rel="stylesheet" href="reset.css" type="text/css" /> <link rel="stylesheet" href="base.css" type="text/css" /> <link rel="stylesheet" href="index.css" type="text/css" /> </head>

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

    <?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
  • SmartyでXMLの読み込みデータが文字化け

    今まで使っていたサーバーのプランが古くて容量が少ないため、同じレンタルサーバーでプランUPしました。 ただそのプランは旧プランと仕様が下記のように変わっています。 【PHP】 旧プラン:PHP4 → 新プラン:PHP5 【文字コード】 旧プラン:EUC-JP → 新プラン:UTF-8 【データベース】 旧プラン:MySQL4.1 → 新プラン:MySQL5 【データベース文字コード】 旧プラン:EUC-JP → 新プラン:UTF-8 文字コードがUTF-8になったため、それに合わせてページの文字コード等を変更したのですが、 一部Smartyで作られるページがあり、そのページの文字化けだけがどうしても解決できません。 そのページはPHPファイル、tplファイル、xmlファイルの3ファイル使っています。 各ファイルはテキストエディタでUTF-8に変換し、tplファイルにある表示される文字は文字化けしません。 ただxmlファイルから読み込むデータが、すべて「?」マークの文字化けをしてしまいます。 念のため、ここだけEUC-JPのまま、つまり何も変更をしない状態にしても同じ「?」マークの文字化けをしてしまいます。 他のファイルも見てみたのですが、文字コードらしい要素が見当たらず(もしくは気づかない)原因がわかりません。 Smartyはまだよくわからなくて、このシステムを作った前々任者とも連絡がとれないので、どうすればいいのか困っています。 どうか宜しくお願いします。

    • 締切済み
    • XML

専門家に質問してみよう