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

UTF-8/RPostgreSQLを使用したUnicodeテキストエンコーディング

    Craig Ringerが言ったように、client_encodingを設定する Windows-1252への接続はおそらく最善の方法ではありません。実際、取得するデータにエキゾチックな文字が1つ含まれている場合は、問題が発生しています。

    一方、R環境でUnicodeを使用することは不可能な場合があります(Sys.setlocaleの場合と同じ問題があります) ... この質問 。)

    回避策は、次のような関数を使用して、すべてのデータでUTF-8エンコーディングを手動で宣言することです。

    set_utf8 <- function(x) {
      # Declare UTF-8 encoding on all character columns:
      chr <- sapply(x, is.character)
      x[, chr] <- lapply(x[, chr, drop = FALSE], `Encoding<-`, "UTF-8")
      # Same on column names:
      Encoding(names(x)) <- "UTF-8"
      x
    }
    

    また、すべてのクエリでこの関数を使用する必要があります:

    set_utf8(dbGetQuery(con, "SELECT myvar FROM mytable"))
    

    編集: もう1つの可能性は、RPostgres を使用することです。 RPostgreSQLの代わりに。私はそれを(あなたの質問と同じ構成で)テストしました、そして私が見る限り、宣言されたすべてのエンコーディングは自動的にUTF-8に設定されます。



    1. vb.net を使用してステートメントを更新し、すべてのフィールドを更新します

    2. SQLクエリ:テーブルから順序付けられた行をフェッチします

    3. パスワードで大文字と小文字の区別がチェックされていません

    4. xp_cmdshellがSQLServer2012で機能しないのはなぜですか?