0

いくつかのデータベースを備えたpostgreSQLサーバーがあります。すべてのユーザーは、特定のデータベースにしか接続できません。ここまでは順調ですね。すべてが機能するかどうかをテストしたかったので、pgAdmin III を使用して制限付きユーザーでログインしました。ユーザーが接続権限を持っていないデータベースに接続しようとすると、ログファイルに何かが発生するようです! サーバーステータスウィンドウで読み取ることができなくなりました。私が得るのは、utf8 をエンコードするための無効なバイト シーケンスに関する多くのメッセージだけです。これらのメッセージ ウィンドウを停止する唯一の方法は、プログラムを強制終了し、postgre に新しいログ ファイルを作成させることです。

なぜそれが起こるのか、どうすればそれを止めることができるのか、誰か私に説明できますか???

4

1 に答える 1

1

OK、問題は「für」の「ü」だと思います。エラーメッセージは、 latin1(および同様のもの)では小文字のuとumlautである文字コード0xfcについて不平を言っているようです。

データベース接続を介して返送されるメッセージは、クライアントエンコーディングに変換する必要があります。ただし、ログファイルにはさまざまなソースからの出力が含まれており、これによると、かなり最近(2012年)に問題が発生しました。

これは既知の問題です。恐れ入ります。PostgreSQLポストマスターはシステムロケールにログインし、PostgreSQLバックエンドはデータベースが含まれているエンコーディングにログインします。これらはすべて同じログファイルに書き込み、多くのテキストエディタを詰まらせる混合エンコーディングデータでいっぱいのログファイルを生成します。

つまり、システムロケールは8859-1(またはおそらく-15)であると思いますが、pg-adminはUTF-8を期待しています。短期的には、システムエンコーディングをUTF-8に設定し、長期的にはバグレポートをpgadminチームにドロップすることができます。1つのエラーメッセージが役立ちます。その後は、テキストなどに16進コードを挿入するだけです。

于 2012-06-21T12:25:27.373 に答える