「OpenPNE」というフリーのSNSを利用しようとしています(PHP+MySQL)。

http://www.openpne.jp/

SQL文でMySQLにデータを投入すると、日本語が文字化けし困っています。
UTF-8のデータを投入しているはずなのですが、
DB上ではEUCになってしまっているようなのです。

#MySQL4.1.20は日本語処理に癖があるということなので、
 これが原因かもしれません。。
 別サーバ(MySQL 4.0.26)で、試してみたところ、問題はありませんでした。
#OpenPNEはUTF-8前提のシステムなので、DBをEUCで運用するのは難しいです。

対応策をご教授いただけると幸いです。

・・・・・・・・・・・・・・・・

具体的には、以下のセットアップガイドを見ながら、作業をしています。
http://tejimaya.org/openpne/docs/2_2/OpenPNE_Setup.html

4. OpenPNE用データベースの作成

(1)まずデータベースをUTF8で作成
CREATE DATABASE `DBNAME` DEFAULT CHARACTER SET utf8 ;

(2)SQL文を流してデータ投入
$ mysql -u username -p --default-character-set=utf8 DBNAME < install_2_2_create_tables.sql
$ mysql -u username -p --default-character-set=utf8 DBNAME < install_2_2_insert_data.sql

回答の条件
  • 1人2回まで
  • 登録:2006/09/18 20:11:43
  • 終了:2006/09/22 07:10:23

ベストアンサー

id:saphil No.2

saphil回答回数36ベストアンサー獲得回数32006/09/18 21:49:18

ポイント50pt

PHPの設定と思います。

mbstring.internal_encoding

が、UTF-8以外になっていると同じような現象が起きます。

php.ini の設定がどうなっているか分からないので、

正確な解決策をお伝えできませんが、

以下の方法を行なってみてください。


1.php.ini の設定を変えてみる

  mbstring.internal_encoding UTF-8

  (書き換え後Apacheの再起動が必要です)

 

  php.iniの設定変更が難しければ、


2.データベースをUTF8ではなくて他のコードで作成

  mbstring.internal_encoding は、EUC-JP

  になっているケースが多いと思うので、それに

  あわせてEUC-JPで作成するとうまくいくと思います。

CREATE DATABASE `DBNAME` DEFAULT CHARACTER SET EUC-JP ;


試してみてください。

id:tomohirohayashi

1.php.iniの設定変更で解決しました。ありがとうございました!

2006/09/22 07:09:14

その他の回答(1件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402006/09/18 20:20:28

ポイント20pt

セットアップガイドでは MySQL4.1 も考慮されていますし、手順も問題ないように思います。

具体的な対策でなくて申し訳ないですが、ユーザー会の方で注意点を纏められていますので、ご参考にしてください。

http://www.mysql.gr.jp/frame/modules/bwiki/?FAQ#content_1_40

id:saphil No.2

saphil回答回数36ベストアンサー獲得回数32006/09/18 21:49:18ここでベストアンサー

ポイント50pt

PHPの設定と思います。

mbstring.internal_encoding

が、UTF-8以外になっていると同じような現象が起きます。

php.ini の設定がどうなっているか分からないので、

正確な解決策をお伝えできませんが、

以下の方法を行なってみてください。


1.php.ini の設定を変えてみる

  mbstring.internal_encoding UTF-8

  (書き換え後Apacheの再起動が必要です)

 

  php.iniの設定変更が難しければ、


2.データベースをUTF8ではなくて他のコードで作成

  mbstring.internal_encoding は、EUC-JP

  になっているケースが多いと思うので、それに

  あわせてEUC-JPで作成するとうまくいくと思います。

CREATE DATABASE `DBNAME` DEFAULT CHARACTER SET EUC-JP ;


試してみてください。

id:tomohirohayashi

1.php.iniの設定変更で解決しました。ありがとうございました!

2006/09/22 07:09:14

コメントはまだありません

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

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

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

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