Tôi đang cố gắng để chạy subprocess.call() với unicode filename, và đây được đơn giản hóa:Unicode filename để trăn subprocess.call()
n = u'c:\\windows\\notepad.exe '
f = u'c:\\temp\\nèw.txt'
subprocess.call(n + f)
điều này làm tăng lỗi nổi tiếng:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe8'
Mã hóa thành utf-8 tạo tên tệp sai và mbcs chuyển tên tệp là new.txt mà không có dấu
Tôi không thể đọc thêm về chủ đề khó hiểu này và quay vòng tròn. Tôi tìm thấy ở đây rất nhiều câu trả lời cho nhiều vấn đề khác nhau trong quá khứ vì vậy tôi nghĩ để tham gia và yêu cầu giúp đỡ bản thân mình
Cảm ơn
Tùy thuộc vào hệ điều hành của bạn, điều gì sẽ xảy ra nếu bạn sử dụng mã latin-1 hoặc cp1252 làm mã hóa của mình? –
Bạn đã chỉ định mã hóa của tệp nguồn chưa? –
tệp nguồn được mã hóa utf: # - * - mã hóa: utf-8 - * - Tôi sử dụng mẹo với latin-1 theo thời gian nhưng không thể trong trường hợp này: 1. Tôi cũng cần các ký tự khác không có trong latin-1 2. Thật không may nó không hoạt động với subprocess - cùng một lỗi được nêu ra, tôi đã mã hóa cả hai chuỗi với cùng mã hóa latin-1 Cảm ơn mọi câu trả lời – otrov