2017-09-04 20 views
6

Tôi đã thử kết nối với một db Sybase, sử dụng gói DBI, nhưng các truy vấn không trả lại các ký tự Hy Lạp một cách chính xác.Kết nối DBI với SQL Server (và Sybase 12.5) không trả về các ký tự Hy Lạp

Tương tự cho kết nối với máy chủ SQL. Dưới đây là một ví dụ về một lệnh dbConnect:

library(odbc) 
con <- dbConnect(odbc::odbc(), .connection_string = "Driver={SQL Server};server=ATLAS;database=master;trusted_connection=true") 

Tôi không có vấn đề khi tôi sử dụng RODBC (với các hệ thống tương tự DSN)

enter image description here

nội dung Bảng:

enter image description here

> sessionInfo() 
R version 3.4.1 (2017-06-30) 
Platform: i386-w64-mingw32/i386 (32-bit) 
Running under: Windows 7 x64 (build 7601) Service Pack 1 

Matrix products: default 

locale: 
[1] LC_COLLATE=Greek_Greece.1253 LC_CTYPE=Greek_Greece.1253 LC_MONETARY=Greek_Greece.1253 LC_NUMERIC=C     
[5] LC_TIME=Greek_Greece.1253  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] odbc_1.1.1 

loaded via a namespace (and not attached): 
[1] bit_1.1-12  compiler_3.4.1 hms_0.3  DBI_0.7  tools_3.4.1 tibble_1.3.4 yaml_2.1.14 Rcpp_0.12.12 bit64_0.9-7 
[10] blob_1.1.0  rlang_0.1.2 
+0

Có thể bạn không có gói ngôn ngữ phù hợp trong cài đặt perl của mình? Nó quay trở lại khi kết nối thông qua DBI? –

+0

Tôi không có cài đặt perl. _> dbConnect (odbc :: odbc(), "PIND_ERGOSE", charset = "cp1253") dbo @ omiros Cơ sở dữ liệu: ERGOSE SQL Server Version: 12.50.0000_ –

+0

@GeorgeDontas Cảm giác của tôi là vấn đề với CharSet của bạn. Xem https://sourceforge.net/p/jtds/bugs/440/ nb. Tôi đã có một vấn đề tương tự một vài năm trở lại trên Windows và đã phải thay đổi Charset. Tại sao? Cp1252 không xác định các giá trị giữa 128 và 160 để chúng được chuyển đổi thành? Tôi hy vọng những điều trên sẽ hữu ích. – Technophobe01

Trả lời

0

Vui lòng thử đặt thông số encoding trong dbConnect(). Từ ?odbc::dbConnect

mã hóa: Mã hóa văn bản được sử dụng trên Cơ sở dữ liệu. Nếu cơ sở dữ liệu là giống với bộ mã hóa cục bộ của bạn được đặt thành ‘" "’. Xem ‘iconvlist()’ để biết danh sách đầy đủ các mã hóa có sẵn trên hệ thống của bạn. Các chuỗi ghi chú luôn được trả về ‘UTF-8’ được mã hóa.

Các vấn đề liên quan