php4.2win

文字化けに関して

スクリプトを呼び出すと文字化けします。
直すにはどうすればいいですか?

fileA.php 文字コード:シフトJIS保存
=================
<?php
require('test.php');
?>
=================

test.php 文字コード:シフトJIS保存
=================
<?php
print("こんにちは");
?>
=================

test.phpを呼び出すと文字化けします。直すにはどうすればいいですか?原因は何でしょうか?
①サーバーの文字コードでしょうか?
②fileAの呼び出し方法を変えるのでしょうか?どうエンコードすればいいですか?
※test.phpとfileA.phpのシフトJIS保存は変更できないとして

おねがいします

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/05/11 14:30:25
  • 終了:2007/05/18 14:35:03

回答(5件)

id:studioes No.1

studioes回答回数522ベストアンサー獲得回数612007/05/11 14:36:31

ポイント23pt

PHP以前にHTMLのヘッダを付けましょう。

ヘッダ内でメタタグとして

<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">

を設定します。

http://q.hatena.ne.jp/

id:rrr3

ありがとうございます!

試します。

2007/05/11 15:52:54
id:GEN111 No.2

GEN111回答回数472ベストアンサー獲得回数582007/05/11 17:40:32

ポイント23pt
<?php
header('Content-Type" content="text/html; charset=shift_jis') ;
?>

PHP でやるなら header 関数にした方がいいと思いますが。

先頭に、少なくとも html や print などの出力の前に書いてください。


PHP: header - Manual

id:rrr3

ありがとうです。

header('Content-Type" content="text/html; charset=shift_jis')

エラーになります。"や'の書き方は上記でOKですか??

2007/05/11 18:12:48
id:GEN111 No.3

GEN111回答回数472ベストアンサー獲得回数582007/05/11 18:39:41

ポイント22pt

すみません。

header("Content-Type: text/html; charset=shift_jis") ;

これで。


エラーの場合はできるだけエラーメッセージも書くようにしてください。

PHP: header - Manual

id:tezcello No.4

tezcello回答回数460ベストアンサー獲得回数692007/05/11 18:59:02

ポイント22pt

多分タイプミスだと思いますが、

" は不要なのでは?


単純に print 文で表示をしようとするとブラウザには使用している文字コードがわからないので、文字化けする可能性が大です。

このあたりについては、先の回答者さんの対応でよいかと。


他には環境への依存が大きいので色々チェックしないと何が原因かは指摘が難しいです。

(いまどんな設定になっているかは、phpinfo() で詳しく表示してくれます。)

http://www.php.net/manual/ja/ref.mbstring.php

mbstring.language

mbstring.internal_encoding

phpの内部エンコードが ShiftJIS でない場合、require で読み込む時に内部エンコードで書いているものだと勝手に解釈されているかもしれません。


mbstring.http_output

http出力時に違うエンコードとしているかもしれません。


mbstring.encoding_translation

今回は関係ないですが、フォームからの入力を自動で内部コードに変換してくれていたのに気が付かなくて、途方に暮れた事もありましたね。


という訳で、僕は php でスクリプトを書くときにおまじないとして以下のようなのを書いています。

(xml書類を扱う事が多いのでエンコードは UTF-8 にしています)

set_magic_quotes_runtime(false);
ini_set('mbstring.http_input', 'pass');
ini_set('mbstring.http_output', 'pass');
mb_language('ja');
mb_internal_encoding('UTF-8');
mb_regex_encoding('UTF-8');
id:rrr3

とてもわかりやすいです。

ありがとうございます!

※でも私にはまだまだ難しいです・・がんばります

そしたら、よくシフトJISを使う私は、どういうおまじないを使えばいいでしょうか?

あと1点、おまじないは下記のように書けばいいですか

==================

カッコ?

おまじない

カッコ?

==================

あと、一行ずつおまじないの

解説をお願いできますでしょうか?

おねがいいたします

2007/05/11 19:19:55

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 tezcello 460 419 69 2007-05-12 01:44:11
  • id:tezcello
    > あと、一行ずつおまじないの
    > 解説をお願いできますでしょうか?
    > おねがいいたします

    とあったので追加を書いたのですが、放置されてしまいました。
    回答者としてはかなり残念です。

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません