Tôi đang sử dụng ứng dụng Django để xuất chuỗi thành tệp CSV. Chuỗi là một thông báo được gửi qua một mẫu giao diện người dùng. Tuy nhiên, tôi đã nhận được lỗi này khi một báo giá đơn unicode được cung cấp trong đầu vào.Xuất CSV Unicode bằng Python (sử dụng Django)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019'
in position 200: ordinal not in range(128)
Tôi đã cố gắng chuyển đổi unicode thành ascii bằng cách sử dụng mã bên dưới, nhưng vẫn gặp lỗi tương tự.
UnicodeEncodeError: 'ascii' codec can't encode characters in
position 0-9: ordinal not in range(128)
Tôi đã sàng lọc hàng chục trang web và học được rất nhiều về unicode, tuy nhiên, tôi vẫn không thể chuyển đổi unicode này thành ascii. Tôi không quan tâm nếu thuật toán loại bỏ các ký tự unicode. Các dòng nhận xét cho biết một số tùy chọn khác nhau mà tôi đã thử, nhưng lỗi vẫn tồn tại.
import csv
import unicodedata
...
#message = unicode(unicodedata.normalize(
# 'NFKD',contact.message).encode('ascii','ignore'))
#dmessage = (contact.message).encode('utf-8','ignore')
#dmessage = contact.message.decode("utf-8")
#dmessage = "%s" % dmessage
dmessage = contact.message
csv_writer.writerow([
dmessage,
])
Có ai có lời khuyên nào về việc xóa ký tự unicode để tôi có thể xuất chúng sang CSV không? Vấn đề dường như dễ dàng này đã khiến tôi quay đầu. Bất kỳ sự giúp đỡ nào cũng được đánh giá cao. Cảm ơn, Joe
Cảm ơn bạn đã sửa chữa Glenn –