我有一个CSV文件,我希望了解它的编码。 Microsoft Excel中是否有可以帮助我检测它的菜单选项
或者我是否需要使用C#或PHP等编程语言来推断它。
答案 0 :(得分:36)
您可以使用记事本打开文件,然后转到文件 - >另存为。在“保存”按钮旁边会有一个编码下拉列表,将在那里选择文件的当前编码。
答案 1 :(得分:21)
在Linux系统中,您可以使用 file 命令。它将提供正确的编码
样品:
file blah.csv
输出:
blah.csv: ISO-8859 text, with very long lines
答案 2 :(得分:5)
如果使用Python,则只需使用print()函数来检查csv文件的编码。例如:
with open('file_name.csv') as f:
print(f)
输出是这样的:
<_io.TextIOWrapper name='file_name.csv' mode='r' encoding='utf8'>
答案 3 :(得分:3)
您还可以使用python chardet库
# install the chardet library
!pip install chardet
# import the chardet library
import chardet
# use the detect method to find the encoding
# 'rb' means read in the file as binary
with open("test.csv", 'rb') as file:
print(chardet.detect(file.read()))
答案 4 :(得分:2)
使用 chardet https://github.com/chardet/chardet(文档简短易读)。
安装python,然后pip install chardet,最后使用命令行命令。
我在GB2312下测试过它非常准确。 (确保您至少有几个字符,只有1个字符的样本可能很容易失败)。
你可以看到 file
不可靠。
答案 5 :(得分:1)
在Python中,您可以尝试...
from encodings.aliases import aliases
alias_values = set(aliases.values())
for encoding in set(aliases.values()):
try:
df=pd.read_csv("test.csv", encoding=encoding)
print('successful', encoding)
except:
pass
答案 6 :(得分:1)
或者你可以在 python 控制台或 Jupyter Notebook 中执行:
import csv
data = open("file.csv","r")
data
您将看到有关数据对象的信息,如下所示:
<_io.TextIOWrapper name='arch.csv' mode='r' encoding='cp1250'>
如您所见,它包含编码信息。
答案 7 :(得分:1)
CSV 文件没有指示编码的标题。
你只能通过观察来猜测:
2021年表情包被广泛使用,但很多导入工具导入失败。上面的答案中经常推荐使用 chardet
库,但该库不能很好地处理表情符号。
icecream = '?'
import csv
with open('test.csv', 'w') as f:
wf = csv.writer(f)
wf.writerow(['ice cream', icecream])
import chardet
with open('test.csv', 'rb') as f:
print(chardet.detect(f.read()))
{'encoding': 'Windows-1254', 'confidence': 0.3864823918622268, 'language': 'Turkish'}
这会在尝试使用此编码读取文件时产生 UnicodeDecodeError。
Mac 上的默认编码是 UTF-8。它明确包含在此处,但这甚至没有必要……但在 Windows 上可能是。
with open('test.csv', 'r', encoding='utf-8') as f:
print(f.read())
ice cream,?
file
命令也选择了这一点
file test.csv
test.csv: UTF-8 Unicode text, with CRLF line terminators
我在 2021 年的建议,如果自动检测出错:在求助于 UTF-8
之前先尝试 chardet
。
答案 8 :(得分:0)
只需添加与您尝试上传的文件匹配的 encoding
参数。
open('example.csv', encoding='UTF8')