我正在将数据加载到以 utf-8 编码的 postgresdwh 中,其中包括个人信息 - 包括名字、姓氏和地址。这些值可以包含德语字符,也可以包含umlauts
法语字符等é, â, à
。数据正在从 Excel 文件中读取到数据框中,然后推送到 postgresql 数据库中。我以前使用以下行来规避编码错误。因此,例如在名字值上:
df = pd.read_excel(dir_path, encoding='utf-8-sig')
df['fname'] = df['fname'].apply(lambda x: x.encode('windows-1252'))
我现在遇到了引发另一个错误的法语字符:
DataError('(psycopg2.DataError) invalid byte sequence for encoding "UTF8": 0xe9 0x20 0x20
我已将编码更改为:
df['fname'] = df['fname'].apply(lambda x: x.encode('utf-8-sig'))
但是,将脚本保持原样不会加载带有德语字符的值。我认为windows-1252
用于西欧语言,应该能够处理所有这些特殊字符。是否有适用于所有这些语言的替代编码?还是我需要根据处理的值更改编码?