
PHP初心者です。
データベースから取り出した日本語が化けるのでなにか直す方法は無いものかと悩んでおります。今のところアルファベット、数字は問題ありません。
構成はこんなかんじです。
Linux : Vine 2.5
PHP : PHP-4.2.1
DB : Postgresql-7.2
apache 1.3.26
現象:
クライアントPCからwebでデータベースに日本語入力は出来ます。
データベースにターミナルから直接入り(psql [DB名])、(select * from [テーブル名];)で確認すると問題無く登録した通りに入っています。
クライアントPCからwebでデータベースの検索をして
拾い出したデータをクライアントPCのweb上で表示をすると文字化けし、
登録した文字とはほどとおいものが出て来ます。
"あ"と登録すると $$ などと出て来ます。
なにかいい方法がありましたら、教えて下さい。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
PostgreSQLはパッケージでインストールしたものですか?それともご自身でソースからインストールしたものですか?
ご自身でソースからインストールしたものとすればコンパイル時に「--enable-multibyte=EUC_JP」のオプションはつけましたか?
データベースに格納されているの文字コードと、http出力されている文字の文字コードが違っているのではないかと思います。
<? phpinfo() ?>と書いたPHPファイルをサーバーにアップしてブラウザで見てください。インストールされているPHPの情報が表示されます。その中で「mbstring」の部分はどうなっていますか?
うちのは「mbstring.internal_encoding」がEUC_JP、「mbstring.http_output」がSJISになっています。
もし意図する内容と違っていたら、php.iniの内容を確認してください。うちのサーバーは以下のようになっています。
output_buffering = On
output_handler = mb_output_handler
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.detect_order = auto
mbstring.substitute_character = none
そもそも「mbstring」関連の設定項目がない、となると、PHPをコンパイルからやり直さないとだめです。
No.5
- 回答日時:
ごめんなさい下の解答間違ってました。
$mb_convert_encoding("$mozi","SJIS");
↓
mb_convert_encoding("$mozi","SJIS");
です。
ちなみにSJISのところをかえればいろいろな文字コードにかえれるようです。
No.4
- 回答日時:
データベースから参照した値が
$mozi = "あいうえお";
だとするとPHPの関数
$mb_convert_encoding("$mozi","SJIS");
で文字コードをSJISに変更できたような
No.3
- 回答日時:
> ということはLinux上でファイルのエンコードを変える
> (nkfで変更)ということでしょうか?クライアント側の
> web画面でエンコードを”EUC"に変えるということでしょうか?
どちらでもOKです。
No.2
- 回答日時:
こんにちは。
DBのエンコードが、EUC-JPで、HTMLファイルのエンコードが、Shift-JISになっていると、WEB上で見る際に文字化けをおこす場合があります。
私も以前、これで悩んだことがありました(^ ^;)
HTMLファイルをEUC-JPに変更してあげると、ちゃんと表示できるかと思います。
回答ありがとうございます。
さらにお聞きしたいのですが、”HTMLファイルをEUC-JPに変更してあげると、ちゃんと表示できるかと思います。”ということはLinux上でファイルのエンコードを変える(nkfで変更)ということでしょうか?クライアント側のweb画面でエンコードを”EUC"に変えるということでしょうか?他の方法があるのですか?まだまだ、踏み込んでないところがあるような気がします。
またよろしくお願いします。
No.1
- 回答日時:
多分、internal_encodingとhttp_outputの問題でしょう。
php4のmbstring関連を参考にして、正しい設定をしてみて下さい。
参考URL:http://jp2.php.net/manual/ja/ref.mbstring.php
レスが遅れてすいません。回答ありがとうございます。
設定はなんどとなく確認し、いろいろ変更したりしておりますが、こちらの求める答えが返ってきません。apache、postgreSQLで設定があるのかな?と思い始めた今日この頃です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- MySQL 私の考えていることは ・mySQL ・PHP ・web制作 この三つのスキルがあれば実現しますか? 4 2023/08/19 02:48
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字化け
-
FTPコマンドでディレクトリごと...
-
php.iniって。。
-
ファイル一覧表(LAN内の別PC)
-
フォントの色を変えるには?
-
「旭日中綬賞 」とはどんな賞で...
-
PHPのif文でその処理を途中で抜...
-
PHP postgres でロールバック...
-
phpのプログラムエラー
-
phpのswitch文のcaseで
-
mod_phpとcgi版phpはなにがどう...
-
mb_send_mail関数が利用出来ない
-
PDOとmysql_real_escape_str
-
require_once で読み込まれたか?
-
CakePHP2のCronでのShellを使う...
-
APIで出てきたXMLをPHPで表示さ...
-
PHPで吐き出した画像にリンクを...
-
複数ページのセッションの送り方
-
PHPでの別のサーバーのテキスト...
-
phpでmysql接続について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エンコーディングについて
-
ajax 文字化け euc-jp
-
PHPでCSV出力時の文字化け(一部)
-
htaccessでの文字コード設定に...
-
scandir関数取得結果の文字化け
-
データベースから取り出した日...
-
i18n_convert と mb_convert_e...
-
GETで値を渡すと、記号と数...
-
phpMyAdminで文字化け
-
urlencodeしていない日本語をPA...
-
【PHP】ファイル読み込みで...
-
php,mysqlでの文字化け(機種依...
-
PHP関数mb_send_mailで送信する...
-
年と曜が文字化け・・・対応策...
-
PHP、My SQLを使いますが、文字...
-
mb_convert_encoding で?になる。
-
PHPにてメールフォームで文字化け
-
PHPの文字化けした文字だけ削除...
-
phpのhex2binについてphpで、ut...
-
PHPExcelで日本語(漢字)ファ...
おすすめ情報