代码之家  ›  专栏  ›  技术社区  ›  X.Jun

readr::read_csv问题:汉字变成乱码

  •  3
  • X.Jun  · 技术社区  · 7 年前

    我试图将一个数据集导入RStudio,但我一直在使用汉字,因为它们会变成杂乱的代码。代码如下:

    library(tidyverse)
    df <- read_csv("中文,英文\n英文,德文")
    df
    # A tibble: 1 x 2
      `\xd6\xd0\xce\xc4`            `Ó¢\xce\xc4`
                   <chr>                  <chr>
    1 "<U+04E2>\xce\xc4" "<U+00B5>\xc2\xce\xc4"
    

    当我使用基函数read时。csv,它工作得很好。我想我一定是编码出错了。但是在read_csv中没有编码选项,我该怎么做?

    1 回复  |  直到 7 年前
        1
  •  7
  •   yutannihilation    7 年前

    这是因为字符标记为 UTF-8 而实际编码是系统默认值(您可以通过 stringi::stri_enc_get() ).

    因此,您可以执行以下任一操作:

    1) 读取编码正确的数据:

    df <- read_csv("中文,英文\n英文,德文", locale = locale(encoding = stringi::stri_enc_get()))
    

    2) 读取编码不正确的数据,稍后用正确的编码进行标记(请注意,这并不总是可行的):

    df <- read_csv("中文,英文\n英文,德文")
    df <- dplyr::mutate_all(df, `Encoding<-`, value = "unknown")