RPostgreSQL icon indicating copy to clipboard operation
RPostgreSQL copied to clipboard

Queries not working with non-ASCII chars

Open dpprdan opened this issue 7 years ago • 0 comments

Somewhat related to #52, queries with non-ASCII characters do not work (on Windows), unless they are encoded as UTF-8

library(RPostgreSQL)
#> Loading required package: DBI
cities <- data.frame(city = c("New York", "Rio", "Brüssel"))
con <- dbConnect(
  PostgreSQL(),
  host = "localhost",
  dbname = "postgres",
  user = Sys.getenv("pg_localhost_user"),
  password = Sys.getenv("pg_localhost_password")
)
dbWriteTable(con, "cities", cities, temporary = TRUE)
#> [1] TRUE
dbReadTable(con, "cities")
#>       city
#> 1 New York
#> 2      Rio
#> 3  Brüssel
query <- "SELECT * FROM cities WHERE city = 'Brüssel'"
dbGetQuery(con, query) 
#> Error in postgresqlExecStatement(conn, statement, ...) : 
#>   RS-DBI driver: (could not Retrieve the result : FEHLER:  ungültige Byte-Sequenz für Kodierung 
#> »UTF8«: 0xfc
#> )
NULL
#> Warning in postgresqlQuickSQL(conn, statement, ...): Could not create
#> execute: SELECT * FROM cities WHERE city = 'Brüssel'
#> NULL

It works fine, when the query is also encoded as UTF-8

query_utf8 <- enc2utf8(query)
dbGetQuery(con, query_utf8)
#>   row.names    city
#> 1         3 Brüssel
dbRemoveTable(con, "cities")
#> [1] TRUE
dbDisconnect(con)
#> [1] TRUE
Session info
devtools::session_info()
#> Session info -------------------------------------------------------------
#>  setting  value                       
#>  version  R version 3.4.3 (2017-11-30)
#>  system   x86_64, mingw32             
#>  ui       RTerm                       
#>  language en                          
#>  collate  German_Germany.1252         
#>  tz       Europe/Berlin               
#>  date     2018-01-26
#> Packages -----------------------------------------------------------------
#>  package     * version date       source                               
#>  backports     1.1.2   2017-12-13 CRAN (R 3.4.3)                       
#>  base        * 3.4.3   2017-12-06 local                                
#>  compiler      3.4.3   2017-12-06 local                                
#>  datasets    * 3.4.3   2017-12-06 local                                
#>  DBI         * 0.7     2017-06-18 CRAN (R 3.4.0)                       
#>  devtools      1.13.4  2017-11-09 CRAN (R 3.4.2)                       
#>  digest        0.6.14  2018-01-14 CRAN (R 3.4.3)                       
#>  evaluate      0.10.1  2017-06-24 CRAN (R 3.4.0)                       
#>  graphics    * 3.4.3   2017-12-06 local                                
#>  grDevices   * 3.4.3   2017-12-06 local                                
#>  htmltools     0.3.6   2017-04-28 CRAN (R 3.4.0)                       
#>  knitr         1.18    2017-12-27 CRAN (R 3.4.3)                       
#>  magrittr      1.5     2014-11-22 CRAN (R 3.4.2)                       
#>  memoise       1.1.0   2018-01-08 Github (hadley/memoise@611cfad)      
#>  methods     * 3.4.3   2017-12-06 local                                
#>  Rcpp          0.12.15 2018-01-20 CRAN (R 3.4.3)                       
#>  rmarkdown     1.8     2017-11-17 CRAN (R 3.4.2)                       
#>  RPostgreSQL * 0.6-3   2018-01-24 Github (tomoakin/RPostgreSQL@f93cb17)
#>  rprojroot     1.3-2   2018-01-03 CRAN (R 3.4.3)                       
#>  stats       * 3.4.3   2017-12-06 local                                
#>  stringi       1.1.6   2017-11-17 CRAN (R 3.4.2)                       
#>  stringr       1.2.0   2017-02-18 CRAN (R 3.4.2)                       
#>  tools         3.4.3   2017-12-06 local                                
#>  utils       * 3.4.3   2017-12-06 local                                
#>  withr         2.1.1   2017-12-19 CRAN (R 3.4.3)                       
#>  yaml          2.1.16  2017-12-12 CRAN (R 3.4.3)

dpprdan avatar Jan 26 '18 15:01 dpprdan