包含特殊字符的Excel表格转换为utf-8编码的csv逗号分隔文件解决方案

问题描述:

由于笔者项目需要进行关系图谱展示,需要将每篇论文的作者数据构建成共现矩阵,用以输入到Gephi软件中汇出关系图。故,对于爬取的作者数据(存储在Excel中)需要先转换成逗号分隔文件csv

【初始数据及描述】:由于发表会议论文的作者来自不同国家,所以在作者命名上存在有些作者用自己本国语言(如丹麦语、俄语包含如ć、ø、å、ś特殊符号等)的名字作为论文上自己的名字。这就导致了包含这些语言的xlsx文件另存为csv文件时无法被ASCII编码方案解码。从而在转换后的csv中以?显示这些特殊字符
在这里插入图片描述
【预期转换后的数据】:预期转换后的特殊字符ć、ø、å、ś应该完整的表示在csv文件中,以下是用记事本打开csv文件的展示图。
在这里插入图片描述

曾尝试但无效的方法:

笔者在网上找到了不少解决csv文件打开乱码方案,但大多数都是针对中文字符的。

  1. 使用Notepad++打开xlsx文件尝试转换编码为utf-8 ——转换后在csv文件中依然以?来显示ć、ø、å、ś——无效
  2. 将xlsx文件另存为txt后再将txt文件的编码转换为utf-8——结果同上,无效

自己的成功解决方案:

一、将Excel文件中的表格数据复制到一个空的txt文件中

可见,复制过来后在txt文件中每个单元格的数据用一个制表符\t隔开,每行用一个换行符\n隔开。特殊字符依然正常表示。
在这里插入图片描述

二、将该txt文件编码改为utf-8

由于该txt文件默认编码是ASCII,所以我们需要另存为修改其编码方案为utf-8
在这里插入图片描述

三、使用Python读取并处理该txt文件数据为csv格式并输出到csv文件

这里,笔者使用Python(其他语言也ok)读取并处理该txt文件数据为csv格式并输出到csv文件。代码如下:

text = []
with open(r'C:\Users\Administrator\Desktop\111.txt', 'r', encoding='utf-8') as f:
    text = f.read()
    text = text.replace('\t',',')     # 将数据中的制表符'\t'替换为逗号','
    text2csv = text.replace(',0','')  # 将数据中的空白项',0'替换为空''
    print(text2csv)
with open(r'C:\Users\Administrator\Desktop\222.csv', 'w', encoding='utf-8') as f:
    f.write(text2csv)

和预期结果一致,也正常显示了特殊字符:
在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SL_World

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值