-PR-
締切り
済み

文字コードの設定

  • 困ってます
  • 質問No.62228
  • 閲覧数54
  • ありがとう数5
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 23% (6/26)

文字コードの設定する場所って
何箇所かあると思うんですが
教えてもらえないでしょうか

psql -l
Database | Owner | Encoding
-----------+----------+-----------
template1 postgres SQL_ASCII

php.ini
i18.internal_encoding = SJIS

後、ありましたら教えてください
違うマシンで同じ環境を作ろうしているのですが
できなくて困っています

Redhat6.2J
postgres 7.0.2
php3.0.18
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全5件)

  • 回答No.5
レベル11

ベストアンサー率 49% (139/279)

postgresの方の文字コードですが、postgresの内部でデータをどの形式で持つかです。 initdbは、postgresインストール直後の設定時で、1回だけで、データの位置などを指定します。-Eオプションで、createdbでDBを作成するときのデフォルトのデータ形式が指定できます。 createdbは、データベースの作成で、これもDBで1回だけ指定できます。 という訳で、すでに ...続きを読む
postgresの方の文字コードですが、postgresの内部でデータをどの形式で持つかです。

initdbは、postgresインストール直後の設定時で、1回だけで、データの位置などを指定します。-Eオプションで、createdbでDBを作成するときのデフォルトのデータ形式が指定できます。

createdbは、データベースの作成で、これもDBで1回だけ指定できます。

という訳で、すでにデータが入っているということですから、このパラメータを指定することは出来ませんね。

ただ、rpmで、単純にインストールしたあと、initdbでもcreatedbでも-Eの指定をしていしてないとなると、データ形式がデフォルトのままですから、日本語の処理が出来る状態ではないかもしれません。とは言っても文字として比較する分には、コードの種類さえあっていれば、それほど問題ないかもしれませんが、-Eなどの指定があるのですから、やはり問題がありそうですね。


  • 回答No.1
レベル12

ベストアンサー率 57% (232/402)

PostgreSQLのconfigure時に「--enable-multibyte=...」のオプションはつけましたか? PostgreSQLの場合はconfigure時に選択した文字コードしか基本的に使えないので。 ...続きを読む
PostgreSQLのconfigure時に「--enable-multibyte=...」のオプションはつけましたか?
PostgreSQLの場合はconfigure時に選択した文字コードしか基本的に使えないので。
補足コメント
MAGI

お礼率 23% (6/26)

早速の回答ありがとうございます

initdb等では、なにも指定していません


現象としては
postgresから受け取った文字列を
そのままinsert出来る環境と
できない環境が出来ているという事です
挿入できないというのは EUC-SJIS間の
文字コードに引っかかる文字で

同一ソースであっても環境の違いにより
動作に差異が発生している状態です
投稿日時 - 2001-04-11 12:46:30
  • 回答No.2
レベル12

ベストアンサー率 57% (232/402)

私が言っているのは、initdbではなく、PostgreSQLのコンパイル時の話なんですが。 ./configureはわかりますよね? ...続きを読む
私が言っているのは、initdbではなく、PostgreSQLのコンパイル時の話なんですが。
./configureはわかりますよね?
補足コメント
MAGI

お礼率 23% (6/26)

そうでしたか^^;

RPMパッケージからインストールしましたので
そのへんは、わかりせん

ソースからコンパイルしたものの方が
安全なのでしょうか
投稿日時 - 2001-04-11 19:30:09
  • 回答No.3
レベル12

ベストアンサー率 57% (232/402)

安全かどうかは知りませんが、rpmだとどうしてもコンパイル時に設定すべきオプションをカスタマイズできなくなりますから、今回のようなケースではあまりおすすめしません。 あらかじめ日本語対応済みのrpmならともかく、オリジナルのrpmだと英語環境しか想定していないことはよくありますから、その場合は自力でコンパイルする方が無難です。 自力でコンパイルすると言っても、configureしてmakeしてma ...続きを読む
安全かどうかは知りませんが、rpmだとどうしてもコンパイル時に設定すべきオプションをカスタマイズできなくなりますから、今回のようなケースではあまりおすすめしません。
あらかじめ日本語対応済みのrpmならともかく、オリジナルのrpmだと英語環境しか想定していないことはよくありますから、その場合は自力でコンパイルする方が無難です。

自力でコンパイルすると言っても、configureしてmakeしてmake installして起動時のスクリプト書くだけですから、大した手間ではないと思うんですが。
お礼コメント
MAGI

お礼率 23% (6/26)

大変返事が遅れましてすみません

簡単にコンパイルして出来るようでしたら
一度はためしてみたいと思います^^;

ありがとう御座いました
投稿日時 - 2001-04-20 20:40:02
  • 回答No.4
レベル11

ベストアンサー率 49% (139/279)

postgres 7.0以降であれば、 initdb -E EUC_JP でデフォルトをEUC_JPにする。 データベース作成時に指定する createdb -E EUC_JP データベース名 が出きると思いますので、コンパイルしなくても大丈夫だと思いますよ。 ...続きを読む
postgres 7.0以降であれば、

initdb -E EUC_JP

でデフォルトをEUC_JPにする。

データベース作成時に指定する

createdb -E EUC_JP データベース名

が出きると思いますので、コンパイルしなくても大丈夫だと思いますよ。
補足コメント
MAGI

お礼率 23% (6/26)

ご解答戴きありがとう御座います。

質問に書いてなかったのですが
postgres 7.0.2のdataディレクトリそのまま
を入れているので initdb 等必要なのか
判りません
バージョンが同じだと大丈夫だと思っている

私としては、REDHAT6.2Jを入れて
postgres 7.0.2 とPHP3.0.18に
rpm で削除/インストしてるつもりなのですが
運営されているサーバーと文字コードが違うため
AddSlashes関数を使わないと
エラーで落とされているのが現状です
投稿日時 - 2001-04-20 20:40:19
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ