我想知道如何在对 Microsoft Access 数据库的查询中处理日语字符。我正在尝试使用 R 中 RODBC 包中的函数 odbcQuery 选择用日语编写的变量名称的查询。
我正在使用 Windows。我的 RStudio 版本是 1.1.383,我的 Access 版本是 14.0.7015.1000(32 位)。
我认为 R 理解我的查询中的日语字符,但是当我尝试实际执行查询时,我收到以下错误消息:
> query <- "SELECT [LOA-FTD_1_5_1_CALCULATE_LOA_query].月日 FROM [LOA-FTD_1_5_1_CALCULATE_LOA_query]"
> sqlQuery(channel,query)
[1] "42000 -3100 [Microsoft][ODBC Microsoft Access Driver] Syntax error in query expression '[LOA-FTD_1_5_1_CALCULATE_LOA_query].<U+6708><U+65E5>'."
[2] "[RODBC] ERROR: Could not SQLExecDirect 'SELECT [LOA-FTD_1_5_1_CALCULATE_LOA_query].<U+6708><U+65E5> FROM [LOA-FTD_1_5_1_CALCULATE_LOA_query]'"
在这里,月日在错误消息中被转换为 U+6708 和 U+65E5。这些是两个字符的 UTF-8 代码,所以我猜字符串是以 UTF-8 编码发送到 MS Access,但是 MS Access 无法读取它?MS Access 甚至是执行查询过程的一部分吗?
所以一定是编码问题,RStudio 和 MS Access 互不理解。当我查看日语字符的类似问题时,问题通常是在表格中显示值。这里的变量名是日文的,所以查询根本不起作用。
我很迷茫,所以我愿意接受任何想法或评论。
谢谢你。
我在这篇文章中找到了一个对我有用的答案。
诀窍(至少在我的情况下)是Japanese_Japan.932
在任何数据导入之前将语言环境设置为。这是此命令的代码:
Sys.setlocale("LC_ALL", locale = "Japanese_Japan.932")
然后我从 Access 导入我的数据而无需更改编码,日语字符在结果数据框中正确显示。此外,这允许理解查询中的日语字符。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句