R使用read.table读取含特殊字符的txt格式dataframe乱码如何解决
R读取语音转写txt异常字符修复方案
你遇到的Â异常字符是典型的编码解析错误:原始txt为UTF-8编码,read.table默认调用系统默认编码(多为Latin-1/ISO-8859-1)解析,双字节UTF-8特殊符号被拆分为两个单字节字符,就会额外出现Â。
方案1:读取阶段直接规避
在调用read.table时显式指定编码为UTF-8,从根源避免解析错误:
read.table("你的文件路径.txt", encoding = "UTF-8", stringsAsFactors = FALSE)
Windows系统下如果仍有异常,可以把参数改为encoding = "UTF-8-BOM"重试。
方案2:已读入数据的快速修复
如果数据已经导入R环境不想重新读取,可以直接用iconv对指定列转码:
假设你的数据框名为df,存储转写内容的列名为transcript,执行以下代码即可:
df$transcript <- iconv(df$transcript, from = "ISO-8859-1", to = "UTF-8")
可选补充:HTML转义符还原
如果你的转写内容包含>、<这类HTML转义符,需要额外做转义还原,可以用textutils包的对应功能:
# 第一次使用先安装包 install.packages("textutils") df$transcript <- textutils::HTMLdecode(df$transcript)
导出注意事项
后续导出修复后的数据时,也需要指定UTF-8编码避免二次出现编码问题,调用write.table时添加fileEncoding = "UTF-8"参数即可。
内容的提问来源于stack exchange,提问作者Alexander Ptak
相关产品推荐
相关产品推荐

