sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLを使用して文字列をUnicodeに変換する方法は?

    PostgreSQLデータベースには、「サーバーエンコーディング」というネイティブ文字タイプがあります。通常はutf-8です。

    すべてのテキストはこのエンコーディングです。 byteaとして保存されている場合を除き、混合エンコーディングテキストはサポートされていません。 (つまり、不透明なバイトシーケンスとして)。

    「unicode」または「non-unicode」文字列を格納することはできません。また、PostgreSQLには「varchar」と「nvarchar」の概念がありません。 utf-8では、7ビットASCII範囲(およびその他のいくつか)に該当する文字は1バイトとして格納され、文字が広いほどより多くのストレージが必要になるため、自動的に実行されます。 utf-8は、すべて「ワイド」文字であるテキストの場合、ucs-2またはutf-16よりも多くのストレージを必要としますが、混合されたテキストの場合は少なくなります。

    PostgreSQLは、client_encodingを使用して、クライアントのテキストエンコーディングとの間で自動的に変換します。 設定。明示的に変換する必要はありません。

    クライアントが「Unicode」(Microsoft製品はUCS-2またはUTF-16を意味するときに言う傾向があります)の場合、ほとんどのクライアントドライバーがutf-8<->utf-16変換を処理します。

    したがって、クライアントが正しい文字セットオプションを使用してI / Oを実行し、正しいclient_encodingを設定している限り、気にする必要はありません。 これは、実際にネットワーク上で送信されるデータと一致します。 (これは、PgJDBC、nPgSQL、Unicode psqlODBCドライバーなどのほとんどのクライアントドライバーで自動的に行われます。)

    参照:




    1. SQL-2つの列で同じ値を持つ行を選択します

    2. SpringStoredProcedureを使用してoracleclobINパラメータを挿入するときに32kの制限を克服する

    3. SQLServerでStuffと'ForXml Path'はどのように機能しますか?

    4. regexp_substrを使用して、Oracleで区切り文字として文字列をスペースと文字で分割します