【问题标题】:How to open dbf file in UTF-8如何以 UTF-8 格式打开 dbf 文件
【发布时间】:2018-08-22 13:21:09
【问题描述】:

我有一个 UTF-8 编码的 dbf 文件。当我在 R 中打开它时,在带有 CP1250 字符集的 Windows 上使用read.dbf()(包foreign),字符被损坏:

require(foreign)
x <- read.dbf('file.dbf')
Sys.setlocale()
# "LC_COLLATE=Czech_Czech Republic.1250;LC_CTYPE=Czech_Czech Republic.1250;LC_MONETARY=Czech_Czech Republic.1250;LC_NUMERIC=C;LC_TIME=Czech_Czech Republic.1250"

我想知道我是否应该设置不同的语言环境,正如这里的一些答案所建议的那样,但它在 Win XP 上不起作用 - 当我尝试将语言环境设置为 UTF-8 时,它显示“操作系统报告请求设置无法采用“Czech_Czech Rebublic.UTF8”的语言环境”。

我认为设计上不需要设置新的语言环境(还有see here) - 它应该是函数read.dbf(),或者可能是一些后处理,以处理字符集而不必切换整个 R 系统的语言环境.

你知道怎么做吗?

【问题讨论】:

    标签: r dbf


    【解决方案1】:

    我有一个类似的问题,使用斯洛伐克语字符。

    我使用read.dbf 读取表格,而我设置as.is = TRUE 将字符读取为字符,而不是因子。一旦文件在 R 中,我使用 Encoding(tab$NAM) &lt;-"UTF-8" 将编码指定为 UTF-8。

    它是这样的:

    require(foreign)
    
    # set slovak characters
    Sys.setlocale(category = "LC_ALL", locale = "Slovak")
    
    # Read data in .dbf (Usually exported from ArcGIS 10.4)
    tab<- read.dbf("C:/Users/tab.dbf", as.is = TRUE)
    
    # Check how special characters looks like
    tab$NAM
    "Veľký Polom"                 "Malý Polom"  "Veľká Rača"                 
    "Fabova hoÄľa" 
    
    # Set the correct encoding for your column with special characters
    Encoding(tab$NAM) <-"UTF-8"
    
    # Check it again
    tab$NAM
    "Veľký Polom"                "Malý Polom"                 "Veľká Rača"                 
    "Fabova hoľa"                 
    

    瞧!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-14
      • 2017-07-09
      • 2015-02-19
      • 2015-09-08
      • 2017-09-04
      • 2011-03-16
      相关资源
      最近更新 更多