r - R:将错误显示的外来字符转换为正确的编码(双mojibake)
问题描述
在 R 中,我有这样的向量:
TEST <- c("BlAA¶schl, G", "ThAA¶ni, A.")
其中BlAA¶schl
应该是Blöschl
,ThAA¶ni
应该是Thöni
。
整个数据集都存在类似的问题。我不知道它是如何命名的(也许是“非 ASCII 字符”?)。
基于此响应,其他人似乎已成功尝试此代码:
Encoding(TEST) <- 'latin1'
stringi::stri_trans_general(TEST, 'Latin-ASCII')
但就我而言,没有任何改变。
我该怎么做才能将字符转换AA¶
为ö
?
编辑:关键问题似乎是JosefZ在评论中提到的“双重mojibake ” 。
编辑 2:我发现这个“ UTF-8 字符调试工具”包含actual
和expected
列中的一些(不是全部)问题。此外,GitHub 上的这个“编码修复器”似乎提供了我需要的东西,但它不是用 R 编写的。
解决方案
可能会有更好、更高效和自动化的解决方案。
但是我手动尝试了:我查看了所有“mojibakes”并gsub
手动更改了它们:
TEST <- c("BlAA¶schl, G", "ThAA¶ni, A.")
TEST <- gsub("ö", "ö", TEST)
TEST <- gsub("ü", "ü", TEST)
TEST <- gsub("ž", "z", TEST)
TEST <- gsub("á", "á", TEST)
TEST <- gsub("ä", "ä", TEST)
TEST <- gsub("ć", "ć", TEST)
TEST <- gsub("Ã", "Á", TEST)
TEST <- gsub("ß", "ß", TEST)
TEST <- gsub("ã", "ã", TEST)
TEST <- gsub("é", "é", TEST)
TEST <- gsub("Ä", "č", TEST)
它可以工作,但如果数据集太大,总是存在省略某些字符的风险。
推荐阅读
- javascript - v-model on input change is heavy on performance
- java - 在 JavaFX 中更新对象状态更改的 UI 节点的正确方法是什么?
- python-3.x - Python 3.7: Batch renaming numbered files in a directory while preserving their sequence
- c - In C, my code to find the palindrome is either not printing out all the chars, missing a single char, or repeating chars?
- r - How can I make my data point labels interactive in R studio?
- typescript - PDF url validation in chrome headless browser fails - protractor typescript f\w
- r - 如何将裸元素列表传递给 tidyeval 绘图函数,该函数接受裸元素到 purrr 映射
- javascript - How to create android like swipe tabs in html?
- azure - Azure function 1.0 Logging
- reactjs - 使用 React hooks 时 MediaRecorder 的中间数据会丢失