• ベストアンサー

日本語入力について

PostgreSQL for Windows という本を読みながらポストグレスをインストールしました。 しかし、psqlでコマンドで操作しようとした際に、日本語入力ができませんでした。 入力切替方法が分かっていないだけかもしれませんが、半角/全角ボタン、カタカナひらながローマ字ボタンでも駄目でした。 インストール時にクラスタの初期化段階でエンコーディングをEUC_JPにしています。 ただ、 http://www.ne.jp/asahi/hishidama/home/tech/postgres/install.html のサイトで調べて、「日本語を使いたい場合は、/usr/local/pgsql/binにpg_encodingが出来ていることを確認する。」とありましたが、自分の設定を見ると、 C:\Program Files\PostgreSQL\8.0\binのフォルダにpg-encodeingはありませんでした。 pgsqlの実行ファイルはこのフォルダにあります。 おそらく初歩的な状態なのでしょうが、どなたか助けていただければ幸いです。 よろしくお願いします。

  • kfd
  • お礼率80% (193/241)

質問者が選んだベストアンサー

  • ベストアンサー
  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.3

> エンコーディングをEUC_JPにしています。 psqlはコマンドプロンプトから動かしているんでしょうが、WindowsのコマンドプロンプトはEUCを扱えません。 扱えるのはシフトJISです。(WindowsXPならUTF8も可) なのでPostgreSQLの方に既にEUCで日本語が入っているとしてSELECTするとコマンドプロンプト上には文字化けして表示されます。 > 入力切替方法が分かっていないだけかもしれませんが、半角/全角ボタン、カタカナひらながローマ字ボタンでも駄目でした。 ちなみにコマンドプロンプト(Windows上での)での日本語入力のONは「Alt」+「半角/全角」です。 まあこれでIMEをONにしたとしてINSERTで日本語を入れても、コマンドプロンプトはシフトJISで送るわけでPostgreSQLの方はEUCだと思ってそれを受け付けますので結局は文字化けします。 文字化けしないようにするには、クライアントの文字コードを指定してPostgreSQL側にそれに合わせて相互変換してもらいましょう。 SET NAMESを使って以下のように。 SET NAMES 'SJIS'; http://www.postgresql.jp/document/pg810doc/html/sql-set.html

kfd
質問者

お礼

ありがとうございます。 まさにこの回答を待っていました。 おかげさまで課題が終わりそうです=4年生になれそうです(^^; 本当にありがとうございました。

その他の回答 (2)

  • ririli
  • ベストアンサー率32% (15/46)
回答No.2

お使いのバージョンは、質問文を見る限り8以降のようですが、 そうだとすると、まだ日本語には対応していなかったと思います。

kfd
質問者

お礼

早速の回答ありがとうございます。 ただ、本には当たり前のように感じなども使われていていたので何か方法はありますでしょうか? 別にメモ帳でタイプしてから毎回コピーペーストでもかまいません。 ただ、右クリックは反応せず、Ctrl+Vをしても^Vとなってしまいます。

  • kai-au
  • ベストアンサー率20% (1/5)
回答No.1

質問者のkfdです。 補足のため別アカウントから書き込んでいます。 今の段階で、テーブルの作成、データの登録、検索はできています。 登録データが全てアルファベットであれば問題なさそうなのですが、登録データに日本語を使いたいのでよろしくお願いします。

関連するQ&A

  • pgaccessの日本語入力について

    こんにちは。 RedhatLinux7.1にPostgreSQL-7.2.1をインストールしました。 付属で入っていたと思われるpgaccessを pgaccess & で呼び出し、 psqlで作っていたデータベースに接続することはできました。 しかし、日本語は文字化けしていて、日本語入力もできません。 どのようにすれば日本語表示・日本語入力ができるようになりますか? 教えてください。

  • postgreSQLのinitdb

    postgreSQL7.2.3のインストールを行いました。 % tar vxfz postgresql-7.2.3.tar.gz % cd postgresql-7.2.3 % ./configure --enable-locale --enable-multibyte=EUC_JP |& tee Configure.out % make | & tee Make.out % su # tcsh % make install | &tee Make_install.out % chown -R postgres:postgres /usr/local/pgsql ここまでは何も問題なく終わったのですが、 次に initdb を実行したところ以下エラーが出ます。 % su postgres % /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data ld.so.1: /usr/local/pgsql/bin/pg_encoding: 重大なエラー: libgcc_s.so.1: open に 失敗しました: ファイルもディレクトリもありません。 initdb: pg_encoding failed Perhaps you did not configure PostgreSQL for multibyte support or the program was not successfully installed. ↑ここまで 「マルチバイトサポートしていません」 「インストールに失敗しています」というような内容なのですが、 何がダメだったのでしょうか? ちなみにOSは Solaris9/02です。

  • RedHat9にPostgreSQL構築できるが、再起動すると消滅

    WindowsXP内のVMWareに仮想マシンRedHat9を構築して便利に使っています。今回この中ににPostgreSQL構築しpostgresql-8.1.3.tar.gzを/usr/local/srcにダウンロード #useradd postgres #mkdir /usr/local/pgsql #mkdir /usr/local/pgsql/data #cd /usr/lcal/src #tar zxfv postgres-8.1.3.tar.gz #chown postgres.postgres /usr/locl/pgsql #chown -R postgres.postgres postgresql.1.3 #su - postgres $cd /usr/local/src/postgresql-8.1.3 $./configure $gmake $gmake install 以上で無事postgreSQLデータベースが完成 引き続きユーザpostgresで $/usr/local/pgsql/bin/initdb -D /usr/local/pogsql/data $/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data $/usr/local/pgsql/bin/createdb TestDB $/usr/local/pgsql/bin/psql TestDB で作成したTestDBに接続でき、テーブルも作りました。 ところがRedHat9をいったん再起動するとできている筈のTestDBに接続できなくなります。どこかにどこかに設定ミスがありますか。何かヒントをいただければうれしいです。 $/usr/local/

  • linuxのpathと別名的な事について

    linuxのpathと別名的な事について os:cent os postgresをインストールした環境があります。 ある環境では /usr/local/pgsql/bin/にpsqlがいて シェルで「/usr/local/pgsql/bin/psql」と記述しているスクリプトがあります。 これを別の環境に持っていったのですが、そこでは /usr/bin/にpsqlがいます。 全部書き換えるのも面倒ですので、 「/usr/local/pgsql/bin/psql」と書かれた内容を サーバーの設定で「/usr/bin/psql」と読みかえて動いてくれれば助かります。 要するに、 実行する環境と、試験する環境でパスが異なるので、 スクリプトに手を付けずに試験環境の設定を操作して試験がしたいという事です。 可能でしょうか?

  • PostgreSQLをCentOS5にインストールしました。

    閲覧有難うございます。 質問内容なのですが、Postgresqlをインストールしたのですがpostgresql.confとpg_hba.confが見つかりません。 OSはCentOS5です。 インストール方法は以下の手順で行いました。 # /usr/sbin/adduser postgres # chown postgres:postgres /usr/local/pgsql # mkdir /usr/local/src/postgres-8.2.6 # chown postgres:postgres /usr/local/src/postgresql-8.3.7 # su - postgres # cd /usr/local/src # tar xfz /usr/local/src/postgres-8.2.6.tar.gz # cd /usr/local/src/postgres-8.2.6 # ./configure # make # make install また、 [root@ ~]# su - postgres -bash:  LD_LIBRARY_PATH=/usr/local/pgsql/lib: そのようなファイルやディレクトリはありません -bash:  export: command not found -bash:  PATH=/usr/local/pgsql/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin: そのようなファイルやディレクトリはありません -bash:  export: command not found -bash:  MANPATH=/usr/local/pgsql/man:: そのようなファイルやディレクトリはありません -bash:  export: command not found -bash:  export: command not found -bash:  PATH=/usr/local/pgsql/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin: そのようなファイルやディレクトリはありません -bash:  export: command not found -bash:  MANPATH=/usr/local/pgsql/man:: そのようなファイルやディレクトリはありません -bash:  export: command not found [postgres@ ~]$ のようなエラーがはかれるようになりました。 どうか皆様のお力をお貸しください。

  • PostgreSqlインストールで

    Linux環境にPostgreSqlをインストールしたいのですが以下のエラーがでて困ってます; 手順としては 1, ./configure 2, gmake 3, su 4, gmake install 5, mkdir /usr/local/pgsql/data 6, chown postgres /usr/local/pgsql/data 7, su - postgres 8, /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data 9, /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 & 10, /usr/local/pgsql/bin/createdb test 11, /usr/local/pgsql/bin/psql test まず手順8で以下のエラーが出ます database "postgres" does not exist その後、手順9を実行すると以下のエラーがでます createdb: could not connect to database template1: could not connect to server: そのようなファイルやディレクトリはありません Is the server runnning locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"? 解決策等ご存知でしたら教えて頂けないでしょうか? よろしくお願い致します。

  • postgrsqlを別のディレクトリに初期化したい

    postgrsqlを別のディレクトリに初期化したい Cent osのデータベースサーバーの選択としてpostgrsqlをインストールしました。 データは /var/lib/pgsql/data にできました。 /varの空きが少なかったので、/var/lib/pgsql/dataを削除し、 ルートに/pgsqlを作成し、そこに初期化しました。 >initdb -E UTF8 -D /pgsql/data すると、/pgsql/dataに初期データが生成されましたが、 いつの間にか/var/lib/pgsql/dataにも出来ています。 [root@linuxpc ~]# ls -pl /pgsql/data 合計 108 -rw------- 1 postgres postgres 4 9月 8 15:54 PG_VERSION drwx------ 5 postgres postgres 4096 9月 8 15:54 base/ drwx------ 2 postgres postgres 4096 9月 8 15:54 global/ drwx------ 2 postgres postgres 4096 9月 8 15:54 pg_clog/ -rw------- 1 postgres postgres 3396 9月 8 15:54 pg_hba.conf -rw------- 1 postgres postgres 1460 9月 8 15:54 pg_ident.conf ・・・略・・・ -rw------- 1 postgres postgres 13793 9月 8 15:54 postgresql.conf [root@linuxpc ~]# ls -pl /var/lib/pgsql/data 合計 132 -rw------- 1 postgres postgres 4 9月 8 15:55 PG_VERSION drwx------ 5 postgres postgres 4096 9月 8 15:55 base/ drwx------ 2 postgres postgres 4096 9月 8 16:02 global/ drwx------ 2 postgres postgres 4096 9月 8 15:55 pg_clog/ -rw------- 1 postgres postgres 3182 9月 8 15:55 pg_hba.conf -rw------- 1 postgres postgres 1460 9月 8 15:55 pg_ident.conf ・・・略・・・ -rw------- 1 postgres postgres 13793 9月 8 15:55 postgresql.conf -rw------- 1 postgres postgres 57 9月 8 16:02 postmaster.opts -rw------- 1 postgres postgres 45 9月 8 16:02 postmaster.pid どちらが有効なのでしょうか? /var/lib/pgsql/data側は要らないのですが。

  • PostgreSQLのpsqlでユーザの扱いがうまくいかない

    こんにちは ただいま、PostgreSQL7.2.3をインストール(Redhat7.3)し、これからpsqlを使い、SQL操作をしようとしていたところですが、psqlと入力すると "psql: FATAL 1: Database "postgres" does not exist in the system catalog."となります。 PostgreSQLのユーザは "postgres","nobody"です。 現在、postgresからpostmaster -Sで起動しています. 下記に端末で行った作業内容をコピーしてみました。 今回インストールの参考にした書籍は"PHPxPostgreSQLで作る最強Webシステム」石井達夫著です。この本の手順に従ったつもりですが、うまくいきません。 [postgres@www root]$ postmaster -S [postgres@www root]$ psql -l List of databases Name | Owner | Encoding -----------+----------+---------- php | postgres | EUC_JP template0 | postgres | EUC_JP template1 | postgres | EUC_JP (3 rows) [postgres@www root]$ select dtname from php bash: syntax error near unexpected token `from' [postgres@www root]$ select dtname from template0 bash: syntax error near unexpected token `from' [postgres@www root]$ [postgres@www root]$ psql select dtname from php psql: warning: extra option from ignored psql: warning: extra option php ignored psql: FATAL 1: Database "select" does not exist in the system catalog. [postgres@www root]$ psql -l List of databases Name | Owner | Encoding -----------+----------+---------- php | postgres | EUC_JP template0 | postgres | EUC_JP template1 | postgres | EUC_JP (3 rows) [postgres@www root]$ psql psql: FATAL 1: Database "postgres" does not exist in the system catalog.

  • postmasterについて

    VineLInux+PostgreSQL7.1.1で動かそうとしています。 ところが、インストール、initdbまでは出来たのですが、 psql等のコマンドを実行すると、以下のように [post@togane bin]$ ./psql -l psql: connectDBStart() -- connect() failed: 接続を拒否されました Is the postmaster running locally and accepting connections on Unix socket '/tmp/.s.PGSQL.5432'? と、表示されます。 postgres.confでportをデフォルト以外で15432と設定しています。 他にもpostmasterが動いているかを確認するために pg_ctlコマンドを実行したのですが、 [post@togane bin]$ ./pg_ctl -w start pg_ctl: Another postmaster may be running. Trying to start postmaster anyway. pg_ctl: cannot start postmaster Examine the log output. と、エラーが出てしまいます。 今、私が参考にしている本は 石井達夫著 PostgreSQL完全後略ガイド 技術評論社 です。この本にある通り進めていったつもりなのですが うまく動かないので困っています。 どなたか御指導の程宜しくお願いします。

  • POSTGRES8.2を自動起動したい

    POSTGRES8.2をシェルで自動起動したく、下記のとおり挑戦しています。 cd /etc/init.d/ vi pgsql #!/bin/sh # # chkconfig: 35 86 15 # description: PostgreSQL auto start PGACCOUNT="user1" PG_CTL="/usr/local/pgsql/bin/pg_ctl" . /etc/rc.d/init.d/functions echo "PostgresSQL start:" su - $PGACCOUNT -c "$PG_CTL start -o \"-i\"" そして下記の順番で設定・確認 chmod 755 ./pgsql chkconfig --add pgsql chkconfig pgsql on chkconfig --list pgsql pgsql 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ ここで、 su -l service pgsql とやるとPOSTGRESは起動します。 しかし、再起動してもPOSTGRESが起動してくれないのです。 問題解決の為にご協力をお願いします。