ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.2791554 シフトJISでのDB再構築
質問者:genxo2001 デフォルトのEUCでインストールしていますが、
これをシフトJISで再構築したいと思っています。

configureのオプションで指定して再インストールするのか、
インストール後の設定ファイルを使って再構築するのか、
再構築の際はinitdbを再度する必要があるのか注意点があれば
教えて下さい。

シフトJISでデータベースを管理したいと思っている
のですが、アドバイスを頂けると助かります。

お客様の要望でシフトJISで印刷するようなケースがあり、
EUCコードにこだわっているだけでは解決できないので、
困っているところです。よろしくお願いします。

プログラム環境の方ですが、PHPの設定ファイルは調査した
ので、大丈夫だと思います。

使っている環境ですが、
RHL9、postgreSQL7.4.2、PHP4.3.8
になります。
困り度:
  • 困っています
質問投稿日時:
07/02/28 17:48
この質問に対する回答は締め切られました。

回答

ANo.3 #1のお礼をみての追加です。携帯なら、UTF8はやめておいた方がいいですよ。理由はPostgreSQLでUTF8では外字がうまくあつかえないからです。たとえばドコモの絵文字がだめです。
回答者:moritan2
種類:回答
どんな人:経験者
自信:自信あり
回答日時:
07/03/04 12:49
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答良回答20pt

ANo.2 データベースの再構築をする必要は無いと思います。
環境変数の
PGCLIENTENCODING=SJIS
を定義するだけでいいと思います。これにより、EUC_JPで保存されたデータを取り出すときに自動的にシフトJISに変換されます。
回答者:moritan2
種類:回答
どんな人:経験者
自信:自信あり
回答日時:
07/03/04 12:36
この回答へのお礼なるほど!早速やってみます。ありがとうございました。

回答良回答10pt

ANo.1 PostgreSQL って、クライアント側の SJIS はサポートしていますが、サーバ側の SJIS は現在でも対応していなかったように思いますけど。(少なくとも 7.4.2 では対応していません)

SJIS の機種依存文字とかもできるだけ使いたいのであれば、UTF-8 で DB を構築されると良いかとお思います。
回答者:entree
種類:回答
どんな人:経験者
自信:自信あり
回答日時:
07/03/01 11:19
この回答へのお礼回答ありがとうございました。
調べてみると、サーバ側でのSJISはサポートしていませんでした。
しかし、EUCで構築し、シフトJISのデータを登録することは
可能でした。その場合、プログラム環境のPHPのphp.iniも
設定する必要がありますが、phpでブラウザ上で表示するときには
機種依存文字は表示されませんね。シフトJISでHTMLとして保存
固定で保存していれば表示されます。
ブラウザでは表示できなかったのですが、ファイルに保存して
ダウンロードさせる手法であれば、機種依存文字もダウンロード
後に、エクセル等のソフトで機種依存文字が問題なく扱うことが
できました。シフトJISに対する「こだわり」がお客様の要望と
してあるのですが、開発者にとってこれほど苦痛になるとは、
分かっていてもしんどいですよね。

また、別件で携帯端末にも開発を考えておりまして、
SSL対応でPHPとpostgreSQLでシステム構築を考えているのですが、
携帯端末の標準ブラウザがセキュリティコードの認識上、コード
判別ができずにシフトJISとして表示してしまう仕様があるため、
プログラム環境PHPもシフトJISとして構築する必要があるため、
UTF-8でDB構築する方法も検討する必要が出てくると思いますし、
しばらくテストサーバ機を使って試行錯誤でやってみます。

ありがとうございました。