Windows2000Server、PHP Version 5.0.4

SQLiteManagerのバージョン 1.0.4を使用しましたら、HOMEの画面で日本語表示になりました。

■解決
初期画面で言語をJapaneseと選択すると正しく表示されます。

■未解決
データベースから取り出した値が、日本語に限って文字化けしてしまいます。

■対策
①php.iniのmbstring.internal_encoding = EUC-JPをいじった⇒初期画面が文字化けした
ここで設定もどし
②langフォルダjapanese.inc.phpの$charset = 'euc-jp';をいじった⇒初期画面が文字化けした


解決方法を教えてください。文字化けで悩んでいます。


度々の質問、また質問内容に不備があり申し訳ありませんが、宜しくお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:2007/10/05 21:48:08
  • 終了:2007/10/08 18:23:48

回答(2件)

id:Mook No.1

Mook回答回数1312ベストアンサー獲得回数3912007/10/05 22:47:58

ポイント200pt

SQLite がサポートしているコードは UTF-8だけのようですので、DB から取り出したデータを PHP で表示する際に、コード変換してはどうかと思います。


print mb_convert_encoding($db_data, "EUC-JP", "UTF-8");

のようにした場合、どうでしょうか。


使用できない場合は、php.iniの

extension=php_mbstring.dll

の設定を有効にしてみてお試しください。


PHP mb-convert-encoding

id:saiden

素人の質問で申し訳ありません。

print mb_convert_encoding($db_data, "EUC-JP", "UTF-8");

はSqlitemanegerフォルダの中のファイルのどこかの行を書き換える?もしくは追加することでしょうか?

それともスクリプト内に書き込むということでしょうか?

設定なのか?プログラム内なのか?

判断材料を頂ければ幸いです。

申し訳ありません。

2007/10/06 00:42:28
id:Mook No.2

Mook回答回数1312ベストアンサー獲得回数3912007/10/06 00:50:19

ポイント200pt

コメントが無効なので、再回答で失礼します。


mb_convert_encoding はPHPの関数なので、 スクリプト(PHP)での処理となります。


と書いていて気がつきましたが、もしかして PHP はSQLiteAdmin を使用しているだけで、PHPのスクリプトを使用しているわけではないのでしょうか。

だとしたら、今回の方法は没になります。


もしそうなら、下記が参考にならないでしょうか。

http://project-p.jp/halt/anubis/blog_show/525


以下コメントを有効にしていただければ補足します。

id:saiden

1つ1つ教えていただければ幸いです。

まずphp.iniからですが、

extension=php_mbstring.dllは有効になっていました。

PHP はSQLiteAdmin を使用し、PHPのスクリプトを使用しています。

頂いたコメントにはprint mb_convert_encoding~とありましたが

動作させているスクリプトは以下のように"print"という記述がありませんでした。

//--------------------------------------------------------------//

// 登録済み会員情報取得処理 //

//--------------------------------------------------------------//

$sql="select * from meibo where sakujyo_fg = 0 order by user_kana limit $offset,6";

$dberror_msg="Error:Meiboテーブルからのデータ取得に失敗しました!!";

$result=getDbSelect($dbcon,$sql,$dberror_msg);

for($i=0;$i<count($result);$i++){</p>

$disp_meibo_id[$i]=mb_convert_encoding($result[$i]['meibo_id'],"SJIS","EUC-JP");

$disp_user_name[$i]=mb_convert_encoding($result[$i]['user_name'],"SJIS","EUC-JP");

$disp_user_kana[$i]=mb_convert_encoding($result[$i]['user_kana'],"SJIS","EUC-JP");

$disp_postcode[$i]=mb_convert_encoding($result[$i]['postcode'],"SJIS","EUC-JP");

$disp_address[$i]=mb_convert_encoding($result[$i]['address'],"SJIS","EUC-JP");

$disp_chiku_id[$i]=mb_convert_encoding($result[$i]['chiku_id'],"SJIS","EUC-JP");

$disp_todoufuken_id[$i]=mb_convert_encoding($result[$i]['todoufuken_id'],"SJIS","EUC-JP");

$disp_tel[$i]=mb_convert_encoding($result[$i]['tel'],"SJIS","EUC-JP");

$disp_fax[$i]=mb_convert_encoding($result[$i]['fax'],"SJIS","EUC-JP");

$disp_email[$i]=mb_convert_encoding($result[$i]['email'],"SJIS","EUC-JP");

}

2007/10/06 12:24:47
  • id:Mook
    print はただの表示のためのコマンドなので、本質とは関係ありません。


    回答にコメントされた部分の
      mb_convert_encoding($result[$i]['meibo_id'],"SJIS","EUC-JP");

      mb_convert_encoding($result[$i]['meibo_id'], "EUC-JP", "UTF-8");
    あるいは
      mb_convert_encoding($result[$i]['meibo_id'], "SJIS", "UTF-8");
    のようにして、どうでしょうか。
  • id:saiden
    いつも回答ありがとうございます。最新のコメントに回答いたしました。ありがとうございます。PHP.iniが原因でした。

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

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

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

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