Đã hỏi 6 năm, 11 tháng trước 6 years, 11 months ago
Đã xem 14k lần 14k times
Dữ liệu thực tế: ________ 7, ________ 8, ________ 9, ________ 10 [Có vẻ như trong MySQL DB] và khi tôi tìm nạp dữ liệu này, đây là cách mà trong biến Python [được lấy từ MySQL]:
Khi tôi thử điều này;
truestr = unicode[str,'utf-8'];
ném ngoại lệ với thông báo này:
codec 'ASCII' không thể giải mã byte 0xc4 ở vị trí 4: thứ tự không nằm trong phạm vi [128]
Làm thế nào tôi có thể khắc phục vấn đề này? [Tôi sử dụng Python 2.6]
KGD
1.6462 huy hiệu vàng11 Huy hiệu bạc15 Huy hiệu đồng2 gold badges11 silver badges15 bronze badges
Đã hỏi ngày 22 tháng 10 năm 2015 lúc 6:11Oct 22, 2015 at 6:11
3
Bạn có thể kiểm tra mã hóa bằng phương pháp sau:
>>> import sys
>>> sys.getdefaultencoding[]
'utf-8'
>>>
Nếu mã hóa là
5 thì hãy đặt thành >>> import sys
>>> sys.getdefaultencoding[]
'utf-8'
>>>
6>>> import sys
>>> sys.getdefaultencoding[]
'utf-8'
>>>
Mở tệp sau [tôi đang sử dụng Python 2.7]:
7>>> import sys >>> sys.getdefaultencoding[] 'utf-8' >>>
Sau đó cập nhật sau
6>>> import sys >>> sys.getdefaultencoding[] 'utf-8' >>>
9>>> import sys >>> sys.getdefaultencoding[] 'utf-8' >>>
[Chỉnh sửa 2]
Bạn có thể thêm sau trong mã tour [khi bắt đầu] và sau đó kiểm tra:-
>>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
Đã trả lời ngày 22 tháng 10 năm 2015 lúc 6:26Oct 22, 2015 at 6:26
Vivek Sablevivek SableVivek Sable
9,5263 huy hiệu vàng36 Huy hiệu bạc51 Huy hiệu đồng3 gold badges36 silver badges51 bronze badges
4
Lỗi này có nghĩa là tin nhắn của bạn đã là một đối tượng
>>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
0, không cần giải mã.Khi bạn đang làm:
truestr = unicode[string, 'utf-8']
Biến
>>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
1 của bạn trước tiên được chuyển đổi hoàn toàn thành loại >>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
2 bằng cách sử dụng codec >>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
3 mặc định. Và tất nhiên, nó thất bại vì chuỗi của bạn chứa các ký tự không phải ASCII.Nếu bạn muốn viết
>>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
1 ở đâu đó dưới dạng UTF-8, hãy sử dụng >>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
5.Lưu ý: Tôi đã đổi tên biến
>>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
2 của bạn thành >>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
1 vì tên xung đột với loại >>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
2 tích hợp. Đặt tên biến >>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
2 [hoặc truestr = unicode[string, 'utf-8']
0 hoặc truestr = unicode[string, 'utf-8']
1, v.v.] là một phong cách rất xấu.Đã trả lời ngày 22 tháng 10 năm 2015 lúc 6:34Oct 22, 2015 at 6:34
2
Đi đến tệp này
vi /usr/lib/python2.7/site-packages/sitecustomize.py
Thêm văn bản này
import sys
reload[sys]
sys.setdefaultencoding["utf-8"]
Vivek Sable
9,5263 huy hiệu vàng36 Huy hiệu bạc51 Huy hiệu đồng3 gold badges36 silver badges51 bronze badges
Lỗi này có nghĩa là tin nhắn của bạn đã là một đối tượng
>>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
0, không cần giải mã.Oct 22, 2015 at 12:31
Khi bạn đang làm:Joseph
Biến
1 của bạn trước tiên được chuyển đổi hoàn toàn thành loại >>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
2 bằng cách sử dụng codec >>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
3 mặc định. Và tất nhiên, nó thất bại vì chuỗi của bạn chứa các ký tự không phải ASCII.1 silver badge5 bronze badges>>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
2
Nếu bạn muốn viết
>>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
1 ở đâu đó dưới dạng UTF-8, hãy sử dụng >>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
5."sys.setdefaultencoding" to switch it to utf-8 encoding. This function is only available on startup while python scans the environment. To use this function you have to reload sys after importing the module. Following is the
code for you problem.import sys
reload[sys]
sys.setdefaultencoding ["utf-8"]
Edit:
Lưu ý: Tôi đã đổi tên biến
>>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
2 của bạn thành >>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
1 vì tên xung đột với loại >>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
2 tích hợp. Đặt tên biến >>> try:
... import apport_python_hook
... except ImportError:
... pass
... else:
... apport_python_hook.install[]
...
>>> import sys
>>>
>>> sys.setdefaultencoding["utf-8"]
>>>
>>>
2 [hoặc truestr = unicode[string, 'utf-8']
0 hoặc truestr = unicode[string, 'utf-8']
1, v.v.] là một phong cách rất xấu.Đã trả lời ngày 22 tháng 10 năm 2015 lúc 6:34Oct 22, 2015 at 6:34
4