Tôi đã đọc tất cả các câu hỏi liên quan đến chuyển đổi từ Unicode sang CSV bằng Python ở đây trong StackOverflow và tôi vẫn bị mất. Mỗi lần tôi nhận được một "UnicodeEncodeError: 'ascii' codec không thể mã hóa kí tự u '\ xd1' ở vị trí 12: thứ tự không trong phạm vi (128)"Python: Chuyển đổi Unicode thành ASCII mà không có lỗi cho tệp CSV
buffer=cStringIO.StringIO()
writer=csv.writer(buffer, csv.excel)
cr.execute(query, query_param)
while (1):
row = cr.fetchone()
writer.writerow([s.encode('ascii','ignore') for s in row])
Giá trị của hàng là
(56, u"LIMPIADOR BA\xd1O 1'5 L")
trong đó giá trị của \ xd10 tại cơ sở dữ liệu là ñ, một dấu có dấu phụ được sử dụng bằng tiếng Tây Ban Nha. Lúc đầu, tôi đã cố gắng chuyển đổi giá trị thành một cái gì đó hợp lệ trong ascii, nhưng sau khi mất quá nhiều thời gian, tôi chỉ cố gắng bỏ qua những ký tự đó (tôi cho rằng tôi có cùng một vấn đề với các nguyên âm có dấu).
Tôi muốn lưu giá trị vào CSV, tốt nhất là với - ("LIMPIADOR BAÑO 1'5 L"), nhưng nếu không thể, ít nhất có thể lưu nó ("LIMPIADOR BAO 1'5 L ").
Câu hỏi của bạn là gì? –
Đã cập nhật với câu hỏi ở cuối. – Sergi
Tại sao bạn không thử mã hóa vào trang mã 'ANSI' của Windows? Tôi đoán bạn đang sử dụng Windows vì CSV thường được sử dụng nhất trên Windows, nhưng hãy bỏ qua tôi nếu điều này là rộng của nhãn hiệu. Trên hệ điều hành * NIX, tôi đoán một trong các mã hóa ISO 8 bit sẽ phù hợp, nhưng tôi không có chuyên gia. –