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

sidekiqアプリのpostgresエンコーディングエラー

    文字列がUTF-8であると主張しているからといって、それがUTF-8であるとは限りません。 \ xe9 éです ISO-8859-1 (別名Latin-1)ただし、UTF-8では無効です。同様に、 \ xf1 ñです ISO-8859-1では無効ですが、UTF-8では無効です。これは、文字列が実際にはUTF-8ではなくISO-8859-1でエンコードされていることを示しています。 force_encoding> 現在のエンコーディングとエンコーディング UTF-8として再エンコードするには:

    > "Tweets en Ingl\xE9s y en Espa\xF1ol".force_encoding('iso-8859-1').encode('utf-8')
    => "Tweets en Inglés y en Español" 
    

    したがって、その文字列をデータベースに送信する前に、次のことを行います。

    name = name.force_encoding('iso-8859-1').encode('utf-8')
    

    残念ながら、文字列の実際のエンコーディングを確実に検出する方法はありません。さまざまなエンコーディングが重複しており、èかどうかを判断する方法はありません。 ( \ xe8 ISO-8859-1)またはč \ xe8 ISO-8859-2)は、手動の健全性チェックなしで正しい文字です。




    1. jQuery/AJAXとPHP/MySQLを使用して最初のドロップダウンの選択に基づいて2番目のドロップダウンを設定するにはどうすればよいですか?

    2. MicrosoftAccessのレポートにヘッダーとフッターを追加する方法

    3. SQLServer2005クエリのパフォーマンス

    4. ROracleパッケージをWindows7にインストールするにはどうすればよいですか?