处理查询 MS 访问数据库中的日文字符(在 RStudio 中)
Handling Japanese characters in query to MS access database (in RStudio)
我想知道如何处理 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 不相互理解。当我查看日文字符的类似问题时,问题通常是在 table 中显示值。这里的变量名是日文的,所以查询根本不起作用。
我很迷茫,所以我愿意接受任何想法或评论。
谢谢。
我在 中找到了适合我的答案。
诀窍(至少在我的情况下)是在导入任何数据之前将语言环境设置为 Japanese_Japan.932
。
这是此命令的代码:
Sys.setlocale("LC_ALL", locale = "Japanese_Japan.932")
然后我从 Access 中导入了我的数据,而无需更改编码,日文字符在生成的数据框中正确显示。此外,这允许理解查询中的日文字符。
我想知道如何处理 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 不相互理解。当我查看日文字符的类似问题时,问题通常是在 table 中显示值。这里的变量名是日文的,所以查询根本不起作用。
我很迷茫,所以我愿意接受任何想法或评论。
谢谢。
我在
诀窍(至少在我的情况下)是在导入任何数据之前将语言环境设置为 Japanese_Japan.932
。
这是此命令的代码:
Sys.setlocale("LC_ALL", locale = "Japanese_Japan.932")
然后我从 Access 中导入了我的数据,而无需更改编码,日文字符在生成的数据框中正确显示。此外,这允许理解查询中的日文字符。