ドイツ語でデータを保存する新しいデータベース(つまり、アクセント付きのテキストなど)を作成します。したがって、次のSQLを使用して作成しようとしました。
CREATE DATABASE testdb
WITH ENCODING='LATIN1'
OWNER=postgres
TEMPLATE=template0
CONNECTION LIMIT=-1;
これをWindows開発マシンで実行すると、次のエラーメッセージが表示されます。
エラー:「LATIN1」のエンコーディングはロケール「English_United States.1252」と一致しません詳細:選択したLC_CTYPE設定にはエンコーディング「WIN1252」が必要です。
Linuxサーバーで、次のエラーメッセージが表示されます。
エラー:「LATIN1」のエンコーディングはロケール「en_US.UTF-8」と一致しません詳細:選択したLC_CTYPE設定にはエンコーディング「UTF8」が必要です。
ドイツ語のテキストを正しく保存できるデータベースを作成するにはどうすればよいですか?
Linuxでは、最初にLATIN1
のinitdb
を\usr\pgsql-10\bin
として使用してデータベースを初期化することで、initdb --encoding=en_US.iso88591
をエンコードしたデータベースを作成できました。 ローカライゼーション および利用可能な 文字セット サポートの詳細をお読みください。
次に、-を使用してサービスを再起動します
systemctl restart postgresql-10
これにより、テンプレートデータベースtemplate0とtemplate1が新しいエンコーディングで再初期化され、次のコマンドを使用してデータベースを作成できます。
createdb <dbname>
お役に立てれば。