![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
環境は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で質問しましょう!
似たような質問が見つかりました
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- PHP PHP ページング データベース 1 2022/06/16 10:30
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(Microsoft Office) wordの差し込み印刷での日付表示 2 2023/08/15 16:51
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- オープンソース csvデータのダブルクォーテーションで囲まれた文字内にあるカンマを削除したい 3 2022/09/02 15:17
- PHP 文字列を段落で分ける方法を教えて下さい。 2 2023/03/09 10:03
- PDF PDFソフト 1 2023/08/23 16:14
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mysql utf8、php・euc-jp で出...
-
エンコーディングについて
-
mb_convert_encoding で?になる。
-
文字化け
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
Subversionのリポジトリの削除
-
拡張子php画像をjpg画像等に変...
-
PHPのif文でその処理を途中で抜...
-
バッチを用いたフォルダの自動移動
-
別ファイルの変数を呼び出した...
-
FTPコマンドでディレクトリごと...
-
form actionで二つ送信先を指定...
-
さくらレンタルサーバーでPHPが...
-
ftpでアップロードが出来ない
-
HPを開くとダウンロードページ...
-
.phpと.incファイルの違いはな...
-
TSVファイルをCSV形式に変換したい
-
【file_exists】ファイルが存在...
-
別PHPファイルに変数を渡す
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
i18n_convert と mb_convert_e...
-
Content-Typeが機能していない?
-
mb_convert_encoding で?になる。
-
エンコーディングについて
-
scandir関数取得結果の文字化け
-
ハシゴの「高」が「?」に置き...
-
$str=preg_replace('/\\u3000/'...
-
データベースから取り出した日...
-
XML出力時の日本語一部文字化け
-
mysql utf8、php・euc-jp で出...
-
phpのhex2binについてphpで、ut...
-
POST文字列が化ける(外字)
-
PHPの文字化けした文字だけ削除...
-
csvからデータベースへ取り込み...
-
PHPExcelで日本語(漢字)ファ...
-
euc-jpからutf-8の文字コード変...
-
年と曜が文字化け・・・対応策...
-
htaccessでの文字コード設定に...
-
php5,MySQL5で文字化けが起こる
-
windowsXP、XAMPPでメーラーMer...
おすすめ情報