R連線postgresql中文亂碼

2021-08-26 23:26:42 字數 1078 閱讀 7206

library('rpostgresql')

pgdriver <- dbdriver("postgresql")

key <- dbconnect(

pgdriver,host = "192.168.1.121", port = "5432", dbname = "test_project",

user = "postgres", password = "123456"

)

查詢含有中文的表時,可能報錯:

error in postgresqlexecstatement(conn, statement, ...) : 

rs-dbi driver: (could not retrieve the result : 錯誤: 編碼"utf8"的字元0x0xc2 0xa0在編碼"gbk"沒有相對應值

)

解決方式:

查詢編碼格式,為gbk,而資料庫中為utf-8.

dbgetquery

(key, "show client_encoding")

client_encoding

1 gbk

設定連線編碼為utf-8

postgresqlpqexec

(con, "set client_encoding = 'utf-8'")

查詢成功, 但是顯示亂碼

temp <- dbgetquery(con,'select * from public."temp"')

head(temp)

class

company_name

1 姘戣惀 21涓栫邯涓嶅姩浜ф祼鐏炰竴鍙峰簵

2 姘戣惀 21涓栫邯涓嶅姩浜ф垚閮芥俯奼熷尯鍩\x9f

由於window下r的客戶端為gbk編碼,因此需要將utf-8 格式的資料轉回gbk格式才能正常顯示。可以通過icov函式進行轉碼。

temp

))

PostgreSQL連線問題

近日用postgresql和npgsql寫過程式,由於客戶數量有300多個,所以有的就連線不上了。調整了max connection為500,問題是解決了,可是記憶體使用也是猛漲。差了點資料,估計可通過兩個方面解決一下問題 postgresql的連線池,如pgbouncer 解決方法 1 在連線字串...

QT連線PostgreSQL步驟

1.編譯驅動 其次 在qt的src plugins sqldriver psql目錄下修改psql.pro,加入 includepath d postgresql 9.2 include libs d postgresql 9.2 lib libpq.lib 將postgresql對應的目錄加入 最...

nodejs連線postgreSQL資料庫

nodejs連線pg資料庫有兩種方式,一種是直接連線 操作 斷開 還有一種是使用連線池,這種方式可以有效提公升多併發的效率 下邊是使用兩種不同方式的測試 var pgopt require pg 使用連線池 function connectpgwithpool var pgpool new pgop...