2017-09-04 7 views
6

DBIパッケージを使用してSybaseデータベースに接続しようとしましたが、クエリでギリシャ文字が正しく返されません。SQL Server(およびSybase 12.5)へのDBI接続でギリシャ文字が返されない

SQLサーバーへの接続にも同じです。

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

Iは、(同じシステムDSNで)RODBCを使用した場合、私は何の問題もなかった

enter image description here

テーブル内容:

enter image description here

ここ dbConnectコマンドの例であります
> 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

perlインストールに一致する言語パックがない可能性がありますか? DBIを介して接続するときに何が返されますか? –

+0

私はperlインストールを持っていません。 _>からdbConnect(ODBC :: ODBC()、 "PIND_ERGOSE"、文字セットが= "cp1253") <てOdbcConnection> DBOする@オミロス データベース:ERGOSE SQL Serverのバージョン:12.50.0000_ –

+0

@GeorgeDontas私の感覚が問題ですあなたのCharSet https://sourceforge.net/p/jtds/bugs/440/ nbを参照してください。私はWindowsで2,3年前に同様の問題があり、Charsetを変更しなければならなかった。どうして? Cp1252は128と160の間の値を定義しないため、?に変換されます。 私は上記の助けを願っています。 – Technophobe01

答えて

0

試してくださいencodingパラメータをdbConnect()に設定します。から?odbc::dbConnect

エンコーディング:データベースで使用されるテキストエンコーディング。データベースが の場合、ローカルのエンコードと同じ "" "'に設定します。 システムで利用可能なエンコードの完全なリストについては、 'iconvlist()'を参照してください。文字列は常に 'UTF-8'で返されます。 がエンコードされます。

関連する問題