PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Pengodean Teks UTF-8 / Unicode dengan RPostgreSQL

Seperti yang dikatakan Craig Ringer, menyetel client_encoding ke windows-1252 mungkin bukan hal terbaik untuk dilakukan. Memang, jika data yang Anda ambil berisi satu karakter eksotis, Anda berada dalam masalah:

Di sisi lain, membuat lingkungan R Anda menggunakan Unicode tidak mungkin (saya memiliki masalah yang sama seperti Anda dengan Sys.setlocale ... Sama di pertanyaan ini juga.).

Solusinya adalah mendeklarasikan penyandian UTF-8 secara manual pada semua data Anda, menggunakan fungsi seperti ini:

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
}

Dan Anda harus menggunakan fungsi ini di semua kueri Anda:

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

EDIT: Kemungkinan lain adalah menggunakan RPostgres bukannya RPostgreSQL. Saya mengujinya (dengan konfigurasi yang sama seperti pada pertanyaan Anda), dan sejauh yang saya bisa lihat, semua penyandian yang dideklarasikan secara otomatis disetel ke UTF-8.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Java SQL ERROR:Nama_Tabel Relasi tidak ada

  2. PHP tidak dapat terhubung ke PostgreSQL di CentOS 7

  3. Menemukan kombinasi nilai-nilai tertentu

  4. Cegah stemming kata benda yang tepat di PostgreSQL?

  5. Ubah interval menjadi mikrodetik sebagai tipe angka di PostgreSQL?