Hướng dẫn python change encoding to utf-8 - mã hóa thay đổi python thành utf-8

Đã 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)

Hướng dẫn python change encoding to utf-8 - mã hóa thay đổi python thành utf-8

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à

>>> import sys
>>> sys.getdefaultencoding()
'utf-8'
>>> 
5 thì hãy đặt thành
>>> import sys
>>> sys.getdefaultencoding()
'utf-8'
>>> 
6

  1. Mở tệp sau (tôi đang sử dụng Python 2.7):

    >>> import sys
    >>> sys.getdefaultencoding()
    'utf-8'
    >>> 
    
    7

  2. Sau đó cập nhật sau

    >>> import sys
    >>> sys.getdefaultencoding()
    'utf-8'
    >>> 
    
    6

    >>> import sys
    >>> sys.getdefaultencoding()
    'utf-8'
    >>> 
    
    9

[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

Hướng dẫn python change encoding to utf-8 - mã hóa thay đổi python thành utf-8

Khi bạn đang làm:Joseph

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.1 silver badge5 bronze badges

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

Hướng dẫn python change encoding to utf-8 - mã hóa thay đổi python thành utf-8

4

Làm cách nào để thay đổi tệp văn bản thành UTF

Mã hóa tệp chuyển đổi sang câu trả lời mã của UTF-8 Python..
với Open (ff_name, 'rb') là nguồn_file:.
với mở (target_file_name, 'w+b') là Dest_file:.
Nội dung = Source_File.đọc().
DEST_FILE.Viết (Nội dung. Giải mã ('UTF-16'). Mã hóa ('UTF-8')).

Mã hóa là gì = 'utf

UTF-8 là mã hóa theo định hướng byte.Mã hóa chỉ định rằng mỗi ký tự được biểu diễn bằng một chuỗi cụ thể của một hoặc nhiều byte.specifies that each character is represented by a specific sequence of one or more bytes.

Làm thế nào để bạn chuyển đổi từ Latin1 sang UTF

Một loại unicode là một tập hợp các byte có thể được chuyển đổi thành bất kỳ số lượng mã hóa nào, phổ biến nhất là UTF-8 và Latin-1 (ISO8859-1), lệnh in có logic riêng để mã hóa, được đặt thành SYS.Stdout.mã hóa và mặc định cho UTF-8.

Làm cách nào để thay đổi Unicode trong Python?

Phương thức số 2: Sử dụng Định dạng nối () + định dạng () + ord () Trong đó, nhiệm vụ thay thế trong chuỗi được định dạng unicode được thực hiện bằng định dạng () và ord () được sử dụng để chuyển đổi.Using join() + format() + ord() In this, task of substitution in unicode formatted string is done using format() and ord() is used for conversion.