Django 读写CSV 文件乱码问题

1)当读入的文件出现“\xef\xbb\xbf”时,可以通过“utf-8-sig”解码修正。如:

line = f.readline()
line = line.decode('utf-8-sig')


2)当读入的文件出现“\ufeff”时,可以通过“utf-8”解码修正。如:

line = f.readline()
line = line.decode('utf-8')

3)当读入的中文出现乱码,如“\u4e2d\u56fd\u79fb\u52a817”的时候,可以通过“gb2312”解码修正。如:

line = f.readline()
line = line.decode('gb2312')

4)导出csv文件,用记事本打开文件显示正常,用excel打开文件时出现中文乱码。解决方法a)手动修改office的默认语言方式为“中文(简体)”,然后打开csv,并设置分隔符为“逗号”;b)可在程序中对输出的中文用“gb2312”进行编码,如:

def downloadfile(request):    
    response = HttpResponse(mimetype='text/csv')  
    response['Content-Disposition'] = 'attachment; filename  =contact_list.csv'  
    writer = csv.writer(response)  
    writer.writerow(['name', 'address', 'phone1', 'phone2'])
    contacts = ContactModel.objects.all()
    for contact in contacts:
        writer.writerow([contact.name.encode("gb2312"), contact.address.encode("gb2312"), 
                         contact.phone1, contact.phone2])
    return response













你可能感兴趣的:(Django,django,csv)