Python MS SQL Server Management Studio导出到CSV在读取数据时引入了额外字符
我正在使用MS SQL Server Management Studio,我有一个包含以下数据的简单表:Python MS SQL Server Management Studio导出到CSV在读取数据时引入了额外字符,python,pandas,ssms,Python,Pandas,Ssms,我正在使用MS SQL Server Management Studio,我有一个包含以下数据的简单表: CountryId CommonName FormalName --------- ---------- ---------- 1 Afghanistan Islamic State of Afghanistan 2 Albania Republic of Albania 3 Alger
CountryId CommonName FormalName
--------- ---------- ----------
1 Afghanistan Islamic State of Afghanistan
2 Albania Republic of Albania
3 Algeria People's Democratic Republic of Algeria
4 Andorra Principality of Andorra
我使用“将结果另存为”以默认UTF8编码将此数据保存到countries.csv
。然后我进入iPython并使用pandas将其读入数据帧:
df = pd.read_csv("countries.csv")
如果我这样做
df.columns
我得到:
Index([u'CountryId', u'CommonName', u'FormalName'], dtype='object')
奇怪的是,当我复制列名,将其粘贴到新单元格中,然后按Enter键时,我得到:
u'\ufeffCountryId', u'CommonName', u'FormalName'
unicode字符\ufeff
显示在第一个列名的开头
我用不同的表格尝试了这个过程,每次我都得到了额外的字符。它只发生在第一个列名上
有人能解释一下为什么会出现额外的unicode字符吗 尝试将
encoding=“utf-8-sig”
选项与read\u csv
一起使用。例如:
df = pd.read_csv("countries.csv", encoding = "utf-8-sig")
这样就可以忽略CSV文件开头的Unicode字节顺序标记(BOM)。此处不需要使用BOM,因为UTF-8文件没有字节顺序,但Microsoft工具喜欢将其用作识别UTF-8编码文本文件的幻数。尝试使用
encoding=“UTF-8-sig”
选项和read\u csv
。例如:
df = pd.read_csv("countries.csv", encoding = "utf-8-sig")
这样就可以忽略CSV文件开头的Unicode字节顺序标记(BOM)。此处不需要使用BOM,因为UTF-8文件没有字节顺序,但Microsoft工具喜欢将其用作识别UTF-8编码文本文件的幻数。尝试使用
encoding=“UTF-8-sig”
选项和read\u csv
。例如:
df = pd.read_csv("countries.csv", encoding = "utf-8-sig")
这样就可以忽略CSV文件开头的Unicode字节顺序标记(BOM)。此处不需要使用BOM,因为UTF-8文件没有字节顺序,但Microsoft工具喜欢将其用作识别UTF-8编码文本文件的幻数。尝试使用
encoding=“UTF-8-sig”
选项和read\u csv
。例如:
df = pd.read_csv("countries.csv", encoding = "utf-8-sig")
这样就可以忽略CSV文件开头的Unicode字节顺序标记(BOM)。此处不需要使用BOM,因为UTF-8文件没有字节顺序,但Microsoft工具喜欢将其用作识别UTF-8编码文本文件的神奇数字。这就是UTF-16 BE BOM:当您复制和粘贴时,看起来好像发生了从UTF-8到UTF-16的无声转换。您是如何复制列名的?@EdChum只需突出显示并复制我在您要复制时所指的应用程序将来自MS SQL、文本编辑器、python控制台等的数据放入剪贴板。。你是从哪个应用程序做的,您还可以发布数据和复制步骤这是utf-16 BE BOM:当您复制和粘贴时,看起来好像有一些从utf-8到utf-16的无声转换正在发生。您是如何复制列名的?@EdChum只需突出显示和复制我指的是什么应用程序,因为您要将MS SQL中的数据复制到剪贴板中,文本编辑器、python控制台等。。你是从哪个应用程序做的,您还可以发布数据和复制步骤这是utf-16 BE BOM:当您复制和粘贴时,看起来好像有一些从utf-8到utf-16的无声转换正在发生。您是如何复制列名的?@EdChum只需突出显示和复制我指的是什么应用程序,因为您要将MS SQL中的数据复制到剪贴板中,文本编辑器、python控制台等。。你是从哪个应用程序做的,您还可以发布数据和复制步骤这是utf-16 BE BOM:当您复制和粘贴时,看起来好像有一些从utf-8到utf-16的无声转换正在发生。您是如何复制列名的?@EdChum只需突出显示和复制我指的是什么应用程序,因为您要将MS SQL中的数据复制到剪贴板中,文本编辑器、python控制台等。。你是从哪个应用程序做这件事的,你还可以发布数据和复制步骤吗