相关疑难解决方法(0)

如何检测文本文件的编码/代码页

在我们的应用中,我们收到的文本文件(.txt,.csv从不同的来源,等等).在阅读时,这些文件有时会包含垃圾,因为文件是在不同的/未知的代码页中创建的.

有没有办法(自动)检测文本文件的代码页?

detectEncodingFromByteOrderMarks,对StreamReader构造,工程UTF8 和其他的Unicode标文件,但是我正在寻找一种方法来检测代码页,像ibm850,windows1252.


谢谢你的回答,这就是我所做的.

我们收到的文件来自最终用户,他们没有关于代码页的线索.接收者也是最终用户,到目前为止,这是他们对代码页的了解:代码页存在,并且令人讨厌.

解:

  • 在记事本中打开收到的文件,查看一段乱码文本.如果有人被称为弗朗索瓦(François)或其他东西,那么凭借你的人类智慧你可以猜到这一点
  • 我创建了一个小应用程序,用户可以使用该应用程序打开文件,并在使用正确的代码页时输入用户知道它将出现在文件中的文本.
  • 遍历所有代码页,并显示提供用户提供的文本解决方案的代码页.
  • 如果弹出一个代码页,请让用户指定更多文本.

.net c# globalization encoding text

292
推荐指数
8
解决办法
29万
查看次数

如何确定与read.fwf一起使用的正确文件编码(或使用解决方法删除不符合的字符)

我在下面的问题中尝试了这种方法,但仍然卡住了.

如何检测read.csv的正确编码?

以下代码应该是可重现的...任何想法?我宁愿不使用scan()或readLines,因为我过去一直在成功使用此代码来处理各种状态级别的ACS数据....

我的另一个想法是在导入之前编辑文本文件.但是,我将文件存储为zipped并使用脚本解压缩然后访问数据.必须在R环境之外编辑文件才会真正搞砸了这个过程.提前致谢!

Filename <- "g20095us.txt"
Url <- "http://www2.census.gov/acs2005_2009_5yr/summaryfile/2005-2009_ACSSF_By_State_By_Sequence_Table_Subset/UnitedStates/All_Geographies_Not_Tracts_Block_Groups/"

Widths <- c(6,2,3,2,7,1,1,1,2,2,3,5,5,6,1,5,4,5,1,3,5,5,5,3,5,1,1,5,3,5,5,5,2,3,
        3,6,3,5,5,5,5,5,1,1,6,5,5,40,200,6,1,50)
Classes <- c(rep('character',4),'integer',rep('character',47))
Names <- c('fileid','stusab','sumlev','geocomp','logrecno','us','region','division',
       'statece','state','county','cousub','place','tract','blkgrp','concit',
       rep('blank',14),'ua',rep('blank',11),'ur',rep('blank',4),'geoid','name',rep('blank',3))
GeoHeader <- read.fwf(paste0(Url,Filename),widths=Widths,
                  colClasses=Classes,col.names=Names,fill=TRUE,strip.white=TRUE)
Run Code Online (Sandbox Code Playgroud)

下面的文件"g2009us.txt"中的四行.第二个"Canoncito"造成了问题.下载中的其他文件是csv,但是这个文件是固定宽度的,并且是识别感兴趣的地理位置所必需的(数据的组织不是非常直观).

ACSSF US251000000964 2430 090 25100US2430090 Cameron Chapter,Navajo Nation Reservation and Off-Reservation Trust Land,AZ - NM - UT ACSSF US251000000965 2430 09225100US2430092CañoncitoChapter,Navajo Nation Reservation and Off-Reservation Trust Land,AZ - NM - UT ACSSF US251000000966 2430 095 25100US2430095 Casamero Lake Chapter,纳瓦霍国家保留和非预订信托土地,亚利桑那州 - 新墨西哥州 - 美国证券交易所代码US251000000967 2430 105 25100US2430105 Chi Chil Tah章,纳瓦霍国家预订和非预订信托基地,亚利桑那州 - 新墨西哥州 - UT

r character-encoding

2
推荐指数
1
解决办法
1720
查看次数

标签 统计

.net ×1

c# ×1

character-encoding ×1

encoding ×1

globalization ×1

r ×1

text ×1