• 締切済み

日本語表示ができない

こんばんわ。 winXP+apache2.2+php5で日本語が表示されません。 UTF-8で設定したいのですが、 C:\WINDOWS\php.iniの設定>下記はとあるサイトを参考にしました mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = pass mbstring.http_output = pass mbstring.encoding_translation = Off mbstring.substitute_character = none mbstring.detect_order = UTF-8,SJIS-win,eucJP-win     or mbstring.detect_order = UTF-8 C:\WINDOWS\system32\php_mbstring.dllに入れました。 ですが、php_infoで確認してもmb_系が全くでてきません。 何か他の設定(抜け?)があるのでしょうか?

  • PHP
  • 回答数2
  • ありがとう数3

みんなの回答

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

extension_dir = "/path/to/" の中に php_mbstring.dll は入っていますか?

taukun
質問者

お礼

回答ありがとうございます。 extension_dir = "/path/to/" なんですが、 私のやつは extension_dir = "c:/php/ext" このextフォルダの下に各dllがあります。 それと?なことがひとつあって PHPを解凍(インストール)した場所がc:phpなんですが、その下に c:php5というのがあって、php.iniファイル一つだけ存在しています。 php_infoでextension_dirの確認をすると、このc:php5が設定されています。上の設定と違うんですが、これが原因なんでしょうか? (php5はpearを入れたらできてたような。。。)

taukun
質問者

補足

すいません。間違ってました。 >PHPを解凍(インストール)した場所がc:phpなんですが、その下に >c:php5というのがあって、php.iniファイル一つだけ存在しています。 php.iniファイル一つだけ存在しているのは、C:\Program Files\PHPでした。 c:php5の中にはpear関連だけが入ってます。

  • emikouji
  • ベストアンサー率30% (3/10)
回答No.1

php.iniに設定するのと良いのでは? あらかじめインストールされているphp.ini-distをphp.iniに名前を変更します。 その中の[mbstring]というところに,おっしゃるような設定があらかじめコメントアウトされた形で記述されていますから,コメント(;)を外すだけでOKだと思いますよ。もし,記述がなければ新たに記述すれば良いのだと思いますよ。 それと,以下の行のコメントを外すのを忘れないでくださいね。これで,拡張機能がONになると思いますよ。 extension=php_mbstring.dll ちなみに,”php_mbstring.dll”には,さわらない方がいいと思いますよ。

taukun
質問者

お礼

回答ありがとうございます。 はい。あらかじめインストールされているphp.ini-distをphp.iniに名前を変更してから  mbstring.*(↑の説明参考) を記述しました。 記載忘れてましたが、  extension=php_mbstring.dll もできてます。 それでもNGなので、ここに質問しました。

関連するQ&A

  • phpで文字化け(php.ini)

    phpスプリクトはshift-jisで、文字化けしたためphp.iniをいじってみました。しかしどうやっても一定の漢字が文字化けしてしまいます。(「貼る」等…) 設定した箇所は下記の通りです(色々なサイトを回って調べた結果このような設定にしました) PHPのバージョンは4.4.1です。 default_charset = "Shift-JIS" mbstring.language = Japanese mbstring.internal_encoding = SJIS mbstring.http_input = auto mbstring.http_output = pass mbstring.encoding_translation = Off mbstring.detect_order = auto mbstring.substitute_character = none; mbstring.func_overload = 0

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

    PHP4.3.2 Windows2000 PostgreSQL RedHat Linux DBから取得した値をCSVファイルに書き出します。 この時に日本語が文字化けをしてしまうのです。 php.iniの設定を変えれば、良いのでしょうか? 初歩的な質問で申し訳ありませんが、 よろしくお願いします。 php.iniの設定内容 default_charset = "SJIS" mbstring.language = Japanese mbstring.internal_encoding = eucJP-win mbstring.http_input = ASCII,JIS,Windows-31J,UTF-8,EUC-JP mbstring.http_output = Windows-31J mbstring.detect_order = ASCII,JIS,Windows-31J,UTF-8,EUC-JP mbstring.substitute_character = none DBの設定内容 List of databases Name | Owner | Encoding -----------+----------+---------- test | postgres | EUC_JP

    • ベストアンサー
    • PHP
  • phpmyadminで文字化け

    こんにちは、 現在、php5,mysql4で構築しているのですが、 phpmyadminでテーブルに入れた日本語を見ると 文字化けを起こしており、 たぶん、default_charsetだと思うのですが、 何を設定すればよいのでしょうか? MYSQL4 UTF-8 PHP5 mbstring.detect_order auto mbstring.encoding_translation Off mbstring.func_overload 0 mbstring.http_input auto mbstring.http_output SJIS mbstring.internal_encoding EUC-JP mbstring.language Japanese mbstring.script_encoding no value mbstring.substitute_character no value default_charset no value

    • 締切済み
    • PHP
  • mbstringのMaster Valueの部分を変えることはできませんか?

    mbstring.detect_order    『no value』『no value』 mbstring.encoding_translation『On』『Off』 mbstring.func_overload    『0』『0』 mbstring.http_input     『auto』『pass』 mbstring.http_output     『Shift_JIS』『pass』 mbstring.internal_encoding  『Shift_JIS』『no value』 mbstring.language      『Japanese』『neutral』 mbstring.substitute_character『no value』『no value』 上記のような設定を mbstring.detect_order    『auto』『auto』 mbstring.encoding_translation『On』『On』 mbstring.func_overload    『0』『0』 mbstring.http_input     『auto』『auto』 mbstring.http_output     『sjis』『EUC-JP』 mbstring.internal_encoding  『sjis』『EUC-JP』 mbstring.language      『Japanese』『EUC-JP』 mbstring.script_encoding   『no value』『no value』 mbstring.substitute_character『no value』『no value』 このように設定することはできるのでしょうか? .htaccessで設定する場合はLocal Valueの部分が変更されるのですよね? Master Valueの部分も変更する場合にはどうしたらよいのでしょうか?

    • 締切済み
    • PHP
  • 日本語が使いたいのですが[mbstring]設定がわかりません

    環境は winxp sp2 apache 2.0.54 php 5.0.4 argosoftmailserver php.iniの設定は [mbstring] mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = Off mbstring.detect_order = auto mbstring.substitute_character = none です。足らない事があればお願いします。 下はphpの文です。 <?php $subject = "テスト"; $message = "あいうえお"; $test="日本語エンコーディングテスト"; print "$test (" . mb_detect_encoding($test) . ")<br>"; print ("mbstring.http_input=". mb_http_input() ."<br>"); print ("mbstring.http_output=". mb_http_output() ."<br>"); print ("mbstring.internal_encoding= ".mb_internal_encoding()."<br>"); $subject = mb_convert_encoding($subject, "SJIS", "EUC-JP"); $message = mb_convert_encoding($message , "SJIS", "EUC-JP"); mb_language("Japanese"); $chk = mb_send_mail('******@*******',$subject,$message,'From:***@******.dyndns.org'); if($chk==FALSE) { print "送信失敗"; } else { print "送信完了"; } ?> エンコードテストの結果は以下です。 日本語エンコーディングテスト (SJIS) mbstring.http_input= mbstring.http_output=SJIS mbstring.internal_encoding= EUC-JP よろしくお願いします。

    • ベストアンサー
    • PHP
  • MySQLから取得した日本語のデータが?に文字化けする

    お世話になります。 XAMPPでインストールすると文字化けする問題で、 もう過去ログでも何十と取り上げられているのですが、 それらをいろいろ試してみてもまだできないので、 質問させていただきました。 統一して、UTF-8で扱おうとしています。 行ってきたこと ・my.cnfがないので、C:\xampp\mysql\binに新規に追加 ・下記の内容を書き込む [client] default-character-set = utf8 [mysqld] skip-character-set-client-handshake default-character-set = utf8 character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 ・PhpMyAdminでデータを作成するとき、『MySQL 接続の照合順序: 』を 『utf8_unicode_ci』に変更 ↑PhpMyAdmin上で、データは正しく日本語で取得できるが、 コマンドラインからSQLを投げると、すでに?になっている。 ・php.iniで下記の場所を編集 [mbstring] ; language for internal character representation. ; http://php.net/mbstring.language mbstring.language = Japanese ; internal/script encoding. ; Some encoding cannot work as internal encoding. ; (e.g. SJIS, BIG5, ISO-2022-*) ; http://php.net/mbstring.internal-encoding mbstring.internal_encoding = UTF-8 ; http input encoding. ; http://php.net/mbstring.http-input mbstring.http_input = UTF-8 ; http output encoding. mb_output_handler must be ; registered as output buffer to function ; http://php.net/mbstring.http-output mbstring.http_output = UTF-8 ; enable automatic encoding translation according to ; mbstring.internal_encoding setting. Input chars are ; converted to internal encoding by setting this to On. ; Note: Do _not_ use automatic encoding translation for ; portable libs/applications. ; http://php.net/mbstring.encoding-translation mbstring.encoding_translation = On ; automatic encoding detection order. ; auto means ; http://php.net/mbstring.detect-order mbstring.detect_order = auto ; substitute_character used when character cannot be converted ; one from another ; http://php.net/mbstring.substitute-character ;mbstring.substitute_character = none; ・apache、MySQLとも、XAMPPControlPanelから再起動 ・phpでの出力に、『print("<meta http-equiv="Content-type" content="text/html; charset=utf-8">");』を追加する。 ここまでは行っています。 コマンドラインでSQLを投げて、そこで文字化けするようなのですが、 あとは何がいけないのでしょう。 同じ回答をいただくことになってしまうかもしれませんが、 何卒ご指導の程、よろしくお願い致します。

    • 締切済み
    • PHP
  • Call to undefined function mb_strlen()

    Windows XP SP3 Apache2.2.8 PHP5.2.6 --- mb_strlen()関数が使えません。 「Call to undefined function mb_strlen()」 というエラーが表示されます。 php.iniの設定の問題なのでしょうか? [mbstring]の部分だけ貼り付けておきます。 [mbstring] mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_output = UTF-8 mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; mbstring.func_overload = 7

    • ベストアンサー
    • PHP
  • DB内の日本語データがPHPで取得できない

    利用サーバ:さくらインターネットのレンタルサーバ 利用データベースのバージョン:MySQL 5.1 PHPのバージョン:PHP 5.2.×× PHPMyAdminに記載のMySQL の文字セット: UTF-8 Unicode (utf8) PHPMyAdminに記載のMySQL 接続の照合順序: utf8_general_ci htmlやPHPファイルを、EUC-JPからUTF-8に、全て変えたためなのかは分かりませんが、 データベースに格納されている日本語(というか全角文字?)データを、 PHPで取り出せなくなってしまいました。半角英数字のデータは取得できます。 そのためDBから取得して表示させている文字データのうち、日本語のみが表示されません。 【php.iniファイルの中身】 register_globals = "On" mbstring.language = "Japanese" mbstring.internal_encoding = "UTF-8" mbstring.encoding_translation = "On" default_charset = "UTF-8" output_buffering = "Off" mbstring.http_input = "auto" mbstring.http_output = "pass" mbstring.detect_order = "auto" mbstring.substitute_character = "none" 情報は足りますでしょうか?どなたか、よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • 日本語表示する方法について

    LAPP環境下での開発を行っていますがまだまだ初心者でなかなか前に進みません。 →PostgreSQL (8.3.4) PHP (5.2.6) 現在、作成したプログラムを確認する際にWebブラウザで確認しているのですが DBから引っ張ってくるデータが文字化けしてその解決策が判らず困っています。EUC→Shift_JISがうまくいきません。 DB側の問題なのか、プログラム側の問題なのかも判断つきません。 <php.ini> php.iniは以下の設定を変更しました。 magic_quotes_gpc=off output_bufferring=on output_handler=mb_output_handler default_charset=Shift_JIS mbstring.language = japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none <HTML> HTMLは関係するのはheadタグのみかと思い以下のように設定しています。 charset=Shift_JISと設定しています。 以上方法論等どなたかご教授頂けないでしょうか。

    • 締切済み
    • PHP
  • PHP 文字コードについて

    以下のような環境のホスティングサーバでSmartyを使い簡単なアプリを作っています。 サーバ PHP Version 4.3.7 phpinfoの値 mbstring.detect_order auto mbstring.encoding_translation On mbstring.func_overload 0 mbstring.http_input auto mbstring.http_output SJIS mbstring.internal_encoding EUC-JP mbstring.language Japanese mbstring.script_encoding auto mbstring.substitute_character no value 今回、PHPソースはUTF-8、HTML(Smartyテンプレ)もUTF-8で作っています(作りたいです)。 この様な場合、PHPスクリプトに「ini_set」を記述するのが良いのか、又は$_POST等で受け取ったときに毎回「mb_convert_encoding」記述するのが良いのか、その両方か、アドバイスを頂きたいです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう