- ベストアンサー
シフトJISでのDB再構築
デフォルトのEUCでインストールしていますが、 これをシフトJISで再構築したいと思っています。 configureのオプションで指定して再インストールするのか、 インストール後の設定ファイルを使って再構築するのか、 再構築の際はinitdbを再度する必要があるのか注意点があれば 教えて下さい。 シフトJISでデータベースを管理したいと思っている のですが、アドバイスを頂けると助かります。 お客様の要望でシフトJISで印刷するようなケースがあり、 EUCコードにこだわっているだけでは解決できないので、 困っているところです。よろしくお願いします。 プログラム環境の方ですが、PHPの設定ファイルは調査した ので、大丈夫だと思います。 使っている環境ですが、 RHL9、postgreSQL7.4.2、PHP4.3.8 になります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
データベースの再構築をする必要は無いと思います。 環境変数の PGCLIENTENCODING=SJIS を定義するだけでいいと思います。これにより、EUC_JPで保存されたデータを取り出すときに自動的にシフトJISに変換されます。
その他の回答 (2)
- moritan2
- ベストアンサー率25% (168/670)
#1のお礼をみての追加です。携帯なら、UTF8はやめておいた方がいいですよ。理由はPostgreSQLでUTF8では外字がうまくあつかえないからです。たとえばドコモの絵文字がだめです。
- entree
- ベストアンサー率55% (405/735)
PostgreSQL って、クライアント側の SJIS はサポートしていますが、サーバ側の SJIS は現在でも対応していなかったように思いますけど。(少なくとも 7.4.2 では対応していません) SJIS の機種依存文字とかもできるだけ使いたいのであれば、UTF-8 で DB を構築されると良いかとお思います。
お礼
回答ありがとうございました。 調べてみると、サーバ側でのSJISはサポートしていませんでした。 しかし、EUCで構築し、シフトJISのデータを登録することは 可能でした。その場合、プログラム環境のPHPのphp.iniも 設定する必要がありますが、phpでブラウザ上で表示するときには 機種依存文字は表示されませんね。シフトJISでHTMLとして保存 固定で保存していれば表示されます。 ブラウザでは表示できなかったのですが、ファイルに保存して ダウンロードさせる手法であれば、機種依存文字もダウンロード 後に、エクセル等のソフトで機種依存文字が問題なく扱うことが できました。シフトJISに対する「こだわり」がお客様の要望と してあるのですが、開発者にとってこれほど苦痛になるとは、 分かっていてもしんどいですよね。 また、別件で携帯端末にも開発を考えておりまして、 SSL対応でPHPとpostgreSQLでシステム構築を考えているのですが、 携帯端末の標準ブラウザがセキュリティコードの認識上、コード 判別ができずにシフトJISとして表示してしまう仕様があるため、 プログラム環境PHPもシフトJISとして構築する必要があるため、 UTF-8でDB構築する方法も検討する必要が出てくると思いますし、 しばらくテストサーバ機を使って試行錯誤でやってみます。 ありがとうございました。
お礼
なるほど!早速やってみます。ありがとうございました。