
環境はxp、apache2、php5、Postgresql8.2です。
1台のPCをサーバ&クライアントにしています。
ただ今PHPとPostgresqlの勉強をしています。
文字化けをしてしまい困っています。
Excelデータからcsvに落として、
それをpostgresのテーブルに書き込みました。
ここまでは上手く行きました。
ところが、良く確認してみると
ハシゴの「髙」(高)や「﨑」(崎)「祥」などの文字が
「?」に置き換わってしまいます。
これをPHPで表示されてても同じです。
ご教示して頂けたら幸いです。
No.3ベストアンサー
- 回答日時:
ぽすぐれ ML過去ログ
http://ml.postgresql.jp/pipermail/pgsql-jp/2005- …
EUCであればこれがビンゴかな。
EUCにも二種類あり、それぞれ特殊文字の扱いが違います。
// PostgreSQLの文字コードはeucJP-openなんですね・・・
// 当然といえば当然だが・・・
MLログにもあるように諦めるしかない気がします。
解決策としては「EUC-JPを使わない」となります。
PostgreSQLの内部コードをsjisにするか、
CSVファイルをUTF-8に変換しPostgreSQLの内部コードをUTF-8に変えた上で入れ込むしか策はないかも。
ご返事が遅れましてすいません。
$line[0] = mb_convert_encoding($line[0],"eucJP-win","sjis-win");
で解決致しました。
No.4
- 回答日時:
$line[0] = mb_convert_encoding($line[0],"EUC-JP","sjis-win");
を
$line[0] = mb_convert_encoding($line[0],"CP51932","sjis-win");
にしたらどうでしょう
PHPのバージョンが低いと使えませんが
No.2
- 回答日時:
問題の切り分けをしましょう。
Excel→CSVの過程で崩れたのか、CSV→(PHP)→PostgreSqlで崩れたのか判断できません。
予測ですが、excel(sjis)->csv(sjis)->postgre(euc?utf8?)としていて
マッピングに失敗しているのではいかと思います。
(機種依存文字、正確にはIBM拡張?はutf8変換で暗黙的に扱ってくれなかった記憶があります)
投入するcsvをDBに合わせるか、DBをCSVに合わせるかするといけるかもしれません。
この回答への補足
ご返事有り難うございました。
>Excel→CSVの過程で崩れたのか、CSV→(PHP)→PostgreSqlで崩れたのか判断できません。
CSV→(PHP)→PostgreSqlで崩れました。
>投入するcsvをDBに合わせるか、DBをCSVに合わせるかするといけるかもしれません。
のところが少し分からないのですが・・・。
最初は、postgresのテーブルに書き込むと
全て文字化けをしていました。
そこでエンコーディングを変換して書き込むと
大方のデータを書き込むことが出来ました。
$line[0] = mb_convert_encoding($line[0],"EUC-JP","sjis-win");
ところが、質問をしましたように
ハシゴの「高」が「?」に置き換わってしまいました。
>(機種依存文字、正確にはIBM拡張?はutf8変換で暗黙的に扱ってくれなかった記憶があります)
と、ご教示して頂いたので、見当違いかも知れませんが
$line[0] = mb_convert_encoding($line[0],"utf8","sjis-win");
と、試してみましたがエラーになりました。
ご教示して頂けたら幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpの問い合わせフォームを作っ...
-
reuterの記事をbeautiful.soup....
-
marginの値でマイナス値を設定...
-
SplFileObject を利用したとき...
-
PHPのセッション有効期限について
-
フォームで戻った際に入力済み...
-
PHP8でWarning:Undefined varia...
-
composerをインストールしたい...
-
HTML PHP ラジオボタンのイベント
-
掲示板のセキュリティについて...
-
Q&Aサイトを作成していてURLの...
-
PostgreSQLからCSV形式でエクス...
-
ファイルの遷移がうまく行われ...
-
PHPで今日の日付から3日後を表...
-
PHPでCSVを出力するさいに、ル...
-
submitで思うようにページが遷...
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エンコーディングについて
-
Content-Typeが機能していない?
-
mail関数を使った際の文字コー...
-
scandir関数取得結果の文字化け
-
携帯サイト制作をしておりまし...
-
PHPの文字化け
-
PHP関数mb_send_mailで送信する...
-
i18n_convert と mb_convert_e...
-
日本語表示する方法について
-
$_GETで2バイト文字列を取得す...
-
データベースから取り出した日...
-
文字化け
-
ajax 文字化け euc-jp
-
htaccessでの文字コード設定に...
-
phpMyFaqでの文字化けについて
-
PHP4の文字コード
-
PHPの文字化けした文字だけ削除...
-
phpMyAdminで文字化け
-
[PHP+MySQL]DBがEUC,出力...
-
mb_http_output()のあと、サー...
おすすめ情報