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

PostgresでのUnicode正規化

    これはPgのバグだと思います。

    私の意見では、PostgreSQLは、エンコード変換を実行する前に、utf-8を事前に作成された形式に正規化する必要があります。表示されている変換の結果は間違っています。

    pgsqlでそれを上げます-バグ...完了。

    http://www.postgresql.org/message-id/example @ sqldat.com

    そこでスレッドをたどることができるはずです。

    編集 :pgsql-hackersは同意していないようですので、急いで変更される可能性は低いです。アプリケーションの入力境界でUTF-8を正規化することを強くお勧めします。

    ところで、これは次のように簡略化できます:

    regress=> SELECT 'á' = 'á';
     ?column? 
    ----------
     f
    (1 row)
    

    これは単純なクレイジートークですが、許可されています。 1つ目は合成済みで、2つ目は合成されていません。 (この結果を表示するには、コピーして貼り付ける必要があります。これは、ブラウザーまたは端末がutf-8を正規化しない場合にのみ機能します。)

    Firefoxを使用している場合は、上記が正しく表示されない可能性があります。 Chromeはそれを正しくレンダリングします。ブラウザが分解されたUnicodeを正しく処理するかどうかを確認する必要があります:




    1. PL / SQLでファイルを解凍するにはどうすればよいですか?

    2. WebアプリケーションのJavaからOracleNLS_LANGUAGEを設定します

    3. MySQL接続タイムアウト設定を確認/変更するにはどうすればよいですか?

    4. SQLクエリ00904。00000-%s:無効な識別子