Tôi có kịch bản Python sau:Tại sao không đặt ngôn ngữ sửa lỗi UnicodeError này?
# -*- coding: utf-8 -*-
import sys, locale
locale.setlocale(locale.LC_ALL, 'en_US.utf8')
print '肥皂' # This works
print u'肥皂'
Khi chạy kịch bản tôi nhận được:
肥皂
Traceback (most recent call last):
File "../pycli/samples/x.py", line 5, in <module>
print u'肥皂'
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-1: ordinal not in range(256)
Tuy nhiên, khi tôi đặt một cách rõ ràng các biến môi trường LC_ALL trong vỏ sau đó nó hoạt động
export LC_ALL=en_US.utf8
Vì vậy, tôi tự hỏi tại sao không setlocale() có tác dụng tương tự?
Bạn đã thử với 'en_US.utf-8' chưa? –
yep tôi đã thử nhưng với kết quả tương tự – trinth
bạn đã cố gắng để .encode ('utf-8') đầu ra của bạn? –