database - 字符编码,带有数据库的 dplyr (postgresql)

标签 database encoding shiny dplyr r-dbi

我已经阅读了有关 Shiny 编码问题的线程和包更新,但我有一个(难以重现示例)数据库驱动的 Shiny 应用程序,它正在摸索一些特殊字符。

在我的 postgresql 数据库中,我正确地看到了我的瑞典河流,“Upper Umeälven River”,当我使用 dplyr 将其过滤回 Shiny 界面时: names.rivers <- filter(tbl.rivers, Country == "Sweden") ...变成 R 语言中的“Upper Umeälven River”

我在本地使用UTF-8编码;我想我在与数据库的交换中丢失了一些东西。

Sys.getlocale() [1] "LC_COLLATE=French_France.1252;LC_CTYPE=French_France.1252;LC_MONETARY=French_France.1252;LC_NUMERIC=C;LC_TIME=French_France.1252"

再次抱歉缺少示例,这只是从数据库中提取的问题。我怀疑我在某个地方缺少某些清理功能的标志,但需要一些帮助来指出正确的方向。

最佳答案

在您的 code page 1252 Windows Latin 1Upper Umeälven River 中“ä”的渲染为代码点 0xE4(二进制 11100100)。

同一代码页中的 Upper Umeälven River 有两个八位字节 0xC3A4 (XXX00011 XX100100)。

但是,如果您考虑 UTF-8 encoding rules码点的有效位完全相同。

某个地方发生了无意或错误的字符编码,将字符转置为 UTF-8,但仍认为该字符串具有 Windows Latin 1 代码页。

也许数据已以 UTF-8 格式接收,您可以将代码页更改为接收代码页以反射(reflect)这一点。更远的地方可能正在发生一场无声的转变,但没有任何迹象表明这一点。

关于database - 字符编码,带有数据库的 dplyr (postgresql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38872770/

相关文章:

PHP:文件还是数据库?

mysql - SQL 查询,难以使用 COUNT() 计算实例/出现次数

C - 如何将宽字符日语字符转换为 UTF-8?

ios - 类型 'Model' 不符合协议(protocol) 'Decodable'/Encodable

r - 我如何将其转换成 Shiny 的模块

php - 从 PHP 应用程序中提取数据库的最佳方法是什么?

php - 如何在 Laravel 5 中连接到现有的 MySQL 数据库?

php - 编码数据库和服务器

来自检查数据表中的行的 RStudio Shiny 列表

jquery - 在 Shiny 的 selectInput 中自定义下拉宽度