在 R 中从 MySQL 获取 UTF-8 文本返回“???”

2024-04-16

我一直在尝试从 R 获取 MySQL 数据库中的 UTF-8 文本。我在 OS X 上运行 R(通过 GUI 和命令行都尝试过),其中默认区域设置是 en_US.UTF-8,并且没有无论我尝试什么,查询结果都显示“?”对于所有非 ASCII 字符。

我尝试过设置options(encoding='UTF-8'), DBMSencoding='UTF-8'通过 ODBC 连接时,设置Encoding(res$str) <- 'UTF-8'获取结果以及每个结果的“utf8”变体后,一切都无济于事。从命令行 mysql 客户端运行查询会正确显示结果。

我完全被难住了。有什么想法为什么它不起作用,或者我应该尝试其他事情吗?

这是一个相当小的测试用例:

$ mysql -u root
mysql> CREATE DATABASE test;
mysql> USE test;
mysql> CREATE TABLE test (str VARCHAR(10)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)

mysql> INSERT INTO test (str) VALUES ('こんにちは');
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;
+-----------------+
| str             |
+-----------------+
| こんにちは      |
+-----------------+
1 row in set (0.00 sec)

使用 RODBC 和 RMySQL 查询 R 中的表显示“??????”对于 str 列:

> con <- odbcDriverConnect('DRIVER=mysql;user=root', DBMSencoding='UTF-8')
> sqlQuery(con, 'SELECT * FROM rtest.test')
    str
1 ?????
> library(RMySQL)
Loading required package: DBI
> con <- dbConnect(MySQL(), user='root')
> dbGetQuery(con, 'SELECT * FROM rtest.test')
    str
1 ?????

为了完整起见,这是我的 sessionInfo:

> sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

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

other attached packages:
[1] RMySQL_0.9-3 DBI_0.2-5    RODBC_1.3-6 

感谢@chooban,我发现连接会话使用的是 latin1 而不是 utf8。这是我找到的两个解决方案:

  • 对于 RMySQL,连接后运行查询SET NAMES utf8更改连接字符集。
  • 对于 RODBC,使用以下方式连接CharSet=utf8在 DSN 字符串中。我没能跑SET NAMES通过 ODBC。

这个问题 https://stackoverflow.com/questions/1000636/mysql-odbc-3-51-driver-utf-8-encoding?rq=1为我指明了正确的方向。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 R 中从 MySQL 获取 UTF-8 文本返回“???” 的相关文章

  • 基于时间窗口的不规则时间序列的优化滚动函数

    有没有办法使用 rollapply 来自zoo包或类似的东西 优化功能 rollmean rollmedian等 使用基于时间的窗口计算滚动函数 而不是基于大量观察的函数 我想要的很简单 对于不规则时间序列中的每个元素 我想计算一个具有 N
  • 更改闪亮 R 中的默认浏览器

    我在 RStudio 中使用 01 hello 虽然在 IE 中默认打开程序时它不会显示直方图 但即使在 Chrome 中 滑块也不起作用 我无法滑动条形图并看到直方图中的变化 如何更改 R 中的默认浏览器 以便闪亮启动 Chrome 而不
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 相当于 min() 的 rowMeans()

    我在 R 邮件列表上多次看到这个问题 但仍然找不到满意的答案 假设我有一个矩阵m m lt matrix rnorm 10000000 ncol 10 我可以通过以下方式获得每行的平均值 system time rowMeans m use
  • MySQL 查询计算上个月

    我想计算上个月的订单总额 我收到了从当前日期获取当月数据的查询 SELECT SUM goods total AS Total Amount FROM orders WHERE order placed date gt date sub c
  • 如何从 R keras 中的类似生成器的数据中评估()和预测()

    我有以下代码 数据集可以下载here https www dropbox com s qjt5o31oyqj10m8 data tar gz dl 0 or here https www kaggle com c dogs vs cats
  • 在 Rcpp 中使用其他包中的 C 函数

    我试图从 C 函数中的 cubature 包调用 C 例程来执行多维积分 我试图重现的基本 R 示例是 library cubature integrand lt function x sin x adaptIntegrate integr
  • 比特纳米。重置mysql根密码

    我如何重置 MySQL 中的 root 密码和帐户 因为我按照如何为其他服务器授予权限的说明操作 并且意外地将 root 用户 Mysql 绑定到其他 IP 地址 现在看来我无法在 localhost 上以管理员身份登录 Thanks 您有
  • Mysql 将 int 转换为 MAC

    我有一些数据可以转换 其中有 2 列 其中一列有 IP 它包含整数值 我在 mysql 查询中使用了以下函数 是否有一个函数可以用来转换我的 mac 列 其中包含整数和数据类型是bigint to MAC地址 SELECT INET NTO
  • Flask-login:无法理解它是如何工作的

    我试图理解如何Flask Login https flask login readthedocs org en latest works 我在他们的文档中看到他们使用预先填充的用户列表 我想使用数据库存储的用户列表 但是 我不明白其中的一些
  • PDO PHP 连接,致命错误

    我的连接类 firstcode php class DB functions public db function construct try db new PDO mysql localhost dbname xxx charset ut
  • 使用 ODBC 从位于 Program Files 文件夹中的数据库读取

    我们有一个应用程序 将其数据库文件存储在 Program Files 目录的子文件夹中 这些文件被重定向到 Vista 和 Windows 7 中的 VirtualStore 我们使用 Microsoft DataReports VB6 表
  • 如何使用 Perl 更改 mysql 密码

    我需要使用 Perl 脚本更改一些 mysql 密码 以下内容在更改数据库条目时有效 但是当我针对 mysql 用户更改修改它时 它将它们重置为空白密码 最后 刷新权限 也很好 但我还没有找到方法 usr bin perl use DBI
  • Bugzilla 中分离客户端的基本权限

    我正在尝试配置一个 Bugzilla 实例 这将允许我的客户登录并为其正在开发 维护的网站提交错误 例如 我创建了 2 个名为 TestProject TestProject2 的产品和一个名为 TestClient 的用户 我想要实现的是
  • 如何在 Excel 中对“高”字符进行 HTML 编码或音译?

    在 Excel 中 如何将包含重音字符 大引号等的单元格内容转换为相同字符的 HTML 或音译纯文本版本 我们有一个 XLS 文档 其中包含一些 高 字符 数据已通过数据库连接提取 并且 Excel 似乎正确处理不同代码页中的各个单元格 或
  • R“错误:“}”中出现意外的“}”[重复]

    这个问题在这里已经有答案了 我有一个字符串变量 对于缺少数据的情况 它具有 空值 我想将 空值 重新编码为缺失 而不是说 空值 我正在尝试编写一个循环来删除这些 空值 条目 但我不断收到错误 错误 中出现意外的 for row in dat
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 闭包作为数据合并习惯的解决方案

    我正在尝试解决闭包问题 而且我think我发现了一个案例 他们可能会有所帮助 我有以下几部分需要处理 一组正则表达式 旨在清理状态名称 位于函数中 具有州名称 上述函数创建的标准化形式 和州 ID 代码的 data frame 用于链接两者
  • 在 ifelse() 语句内部和外部运行一行时的不同输出

    我正在尝试运行一个简单的命令 但不知道为什么在内部和外部运行它时输出不同ifelse 功能 函数条件评估为FALSE 所以输出应该完全相同 但是 单独运行时 输出为0 0 1 1 0 1 0 1 NA 根据需要 但是从ifelse 函数 输
  • 线性判别分析图

    如何将样本 ID 行号 作为标签添加到此 LDA 图中的每个点 library MASS ldaobject lt lda Species data iris plot ldaobject panel function x y points

随机推荐

  • 如何在 Windows 上为 ruby​​ 安装 PCAP

    这肯定是一个相对较新的问题 但我仍然陷入困境 我知道有一个简单的解决方案 我已经进行了一些谷歌搜索 但找不到确切的答案 这是我得到的错误 C Ruby193 include ruby 1 9 1 i386 mingw32 gt gem in
  • 将一个 div 置于另一个 div 之上

    我向我的网络应用程序添加了一个登陆页面 因此当它从服务器加载数据时 登陆页面会显示加载图像和描述 div class map view div class loading screen img src img loading boys gi
  • 在 Web.Config 文件外部存储 SMTP

    一段时间以来 我一直将连接和应用程序设置存储在外部文件中 并仅通过 web config 引用该文件 这非常有效 因为它允许我保留单独的连接字符串和应用程序设置 这真的很方便 因为我发现在开发过程中我经常会对 webconfig 进行许多更
  • CreateRemoteThread 32->64 和/或 64->32

    我需要一种在 x64 窗口中 CreateRemoteThread 到 64 和 32 位进程的方法 我已经弄清楚了如何找到目标进程的指令集 如何在目标进程中为汇编雪橇分配内存 并且我几乎已经弄清楚如何处理地址空间随机化 当远程进程的指令集
  • 为什么我的原型函数不返回实例的属性?

    我有一个简单的 JavaScript 对象 函数 myClass x y this x x this y y 和一个原型函数 myClass prototype myfunction function console log this x
  • X.509 证书的 Java 1.7 主题哈希 OpenSSL 1.0+ 兼容

    我已经为此苦苦挣扎了几天 我正在开发一个在嵌入式 Linux 环境中运行的 Java 1 7 应用程序 OpenSSL 不可用 我无法控制设备上操作系统映像中的内容 我需要计算自签名 X 509 证书的主题哈希 生成与 OpenSSL 1
  • MutationRecord.addedNodes 节点列表中返回的节点数(mutationObserver)

    MutationRecord addedNodes 返回 NodeList 其中检测到在我的文档中添加了节点 当我使用 obj appendChild 方法时 mutationObserver 会检测到它并将 MutationRecord
  • Android GCM:了解 XMPP

    我正在尝试使用应用程序在我的 GCM 中实现 XMPP 协议 但即使经过广泛搜索 我也不理解其背后的概念 另外 也许我并不真的需要 XMPP 来完成我想用我的应用程序做的事情 但我喜欢学习东西 让我们以 HTTP 为例 我的应用程序将 he
  • 如何使用 Android xml 形状在圆内画圆?

    我正在尝试为我的应用程序制作一个搜索栏的拇指 并且我希望有一个内圆被另一个更大 半透明 的外圆包围 我正在尝试使用layer list 但我遇到了问题 下面是我的代码
  • Java 自动类型提升

    我引用 Herbert Schildt 的话 JAVA 完整参考第 8 版 第4章 操作员 当您转移时 Java 自动类型提升会产生意想不到的结果byte and short价值观 如你所知 byte and short价值观被提升为int
  • 使用 NumPy 索引数组对 Python 列表进行切片——有什么快速方法吗?

    我有一个常规的list called a 以及一个 NumPy 索引数组b 不 我不可能转换a到 NumPy 数组 有什么方法可以达到与 相同的效果 a b 有效 需要明确的是 这意味着我不想提取每个人int in b由于其性能影响 是的
  • 如何重置测试之间导入的模块

    假设我有一个模块需要在应用程序启动时初始化一次 以传递配置 模块看起来像这样 MyModule js let isInitiazlied const myModule init function isInitiazlied true do
  • 张量流学习中的多元回归输出节点

    我对张量流比较陌生 想使用 tf contrib learn 中的 DNNRegressor 来执行回归任务 但我不想有一个输出节点 而是想要多个 例如十个 如何配置回归器来调整许多输出节点以满足我的需求 我的问题与以下已在 SO 上提出的
  • 如何查看亚马逊 lambda 函数的 console.log 输出

    当你做一个 console log Loading function 在亚马逊 lambda 函数中 它去哪里了 我的设置 API网关 lambda函数nodejs6 10 卷曲https n2tredacted execute api u
  • android跨度点击事件

    好的 这些都是我的问题 我需要使用正则表达式来过滤掉除字母之外的所有内容 然后我需要将找到的单词包含在 word 标签中 有了这个 str str replaceAll pattern 0 现在我正在过滤所有正确的元素 标点符号 数字等 但
  • 催化剂控制器问题

    我刚刚在我的第一个大型项目中使用了催化剂 我想知道我是否按照预期的方式使用了催化剂 我有 Root pm 在该文件中我放置了多个 url 处理程序 每个 url 有一个控制器是最佳实践还是应该考虑分组 Catalyst 的优点之一是它的灵活
  • Rails,将文件上传到服务器时获取文件名

    我在 Rails 3 中使用 AJAX 上传器以及 paper clip 并在此处上传文件 def upload photo Photo create photo gt params file title gt params filenam
  • 有哪些 CSS 属性可以让元素脱离正常流程?

    有哪些 CSS 属性可以让元素脱离正常流程 这些属性可以是 float position absolute 等 这个问题涉及正常流程的所有可能的改变 只有以下属性会影响任何给定元素的正常流程 float right left positio
  • 在共享主机上安装 PHP 扩展

    我需要启用mcrypt https www php net manual en book mcrypt php我的网站上的功能 除了我在共享主机上 运行 Linux 并且显然无权访问php ini文件 似乎确实有安装 PEAR 模块的选项
  • 在 R 中从 MySQL 获取 UTF-8 文本返回“???”

    我一直在尝试从 R 获取 MySQL 数据库中的 UTF 8 文本 我在 OS X 上运行 R 通过 GUI 和命令行都尝试过 其中默认区域设置是 en US UTF 8 并且没有无论我尝试什么 查询结果都显示 对于所有非 ASCII 字符