Hướng dẫn convert unicode to utf-8 python - chuyển đổi unicode sang utf-8 python

Tôi có một trình duyệt gửi các ký tự UTF-8 đến máy chủ Python của tôi, nhưng khi tôi lấy nó từ chuỗi truy vấn, mã hóa mà Python trả về là ASCII. Làm cách nào để chuyển đổi chuỗi đơn giản thành UTF-8?

Lưu ý: Chuỗi được truyền từ web đã được mã hóa UTF-8, tôi chỉ muốn tạo Python để coi nó là UTF-8 không ASCII.

Hướng dẫn convert unicode to utf-8 python - chuyển đổi unicode sang utf-8 python

Người dơi

8.3577 Huy hiệu vàng39 Huy hiệu bạc76 Huy hiệu đồng7 gold badges39 silver badges76 bronze badges

Đã hỏi ngày 15 tháng 11 năm 2010 lúc 8:26Nov 15, 2010 at 8:26

Bin Chenbin ChenBin Chen

59.4K53 Huy hiệu vàng141 Huy hiệu bạc182 Huy hiệu Đồng53 gold badges141 silver badges182 bronze badges

3

Trong Python 2

>>> plain_string = "Hi!"
>>> unicode_string = u"Hi!"
>>> type(plain_string), type(unicode_string)
(, )

^ Đây là sự khác biệt giữa chuỗi byte (Plain_String) và chuỗi Unicode.

>>> s = "Hello!"
>>> u = unicode(s, "utf-8")

^ Chuyển đổi sang Unicode và chỉ định mã hóa.

Trong Python 3

Tất cả các chuỗi là unicode. Hàm

>>> s = "Hello!"
>>> u = unicode(s, "utf-8")
4 không còn tồn tại nữa. Xem câu trả lời từ @noumenon

Hướng dẫn convert unicode to utf-8 python - chuyển đổi unicode sang utf-8 python

Maxime

282 huy hiệu bạc5 huy hiệu đồng2 silver badges5 bronze badges

Đã trả lời ngày 15 tháng 11 năm 2010 lúc 8:31Nov 15, 2010 at 8:31

user225312user225312user225312

122K66 Huy hiệu vàng167 Huy hiệu bạc181 Huy hiệu Đồng66 gold badges167 silver badges181 bronze badges

7

Nếu các phương thức trên không hoạt động, bạn cũng có thể nói với Python bỏ qua các phần của chuỗi mà nó không thể chuyển đổi thành UTF-8:

stringnamehere.decode('utf-8', 'ignore')

Đã trả lời ngày 7 tháng 10 năm 2013 lúc 17:00Oct 7, 2013 at 17:00

Hướng dẫn convert unicode to utf-8 python - chuyển đổi unicode sang utf-8 python

3

Có thể hơi quá mức, nhưng khi tôi làm việc với ASCII và Unicode trong cùng một tệp, việc lặp lại giải mã có thể là một nỗi đau, đây là những gì tôi sử dụng:

def make_unicode(inp):
    if type(inp) != unicode:
        inp =  inp.decode('utf-8')
    return inp

Hướng dẫn convert unicode to utf-8 python - chuyển đổi unicode sang utf-8 python

Đã trả lời ngày 29 tháng 11 năm 2014 lúc 19:13Nov 29, 2014 at 19:13

1

Thêm dòng sau vào đầu tệp .py của bạn:

# -*- coding: utf-8 -*-

Cho phép bạn mã hóa các chuỗi trực tiếp trong tập lệnh của mình, như thế này:

utfstr = "ボールト"

Hướng dẫn convert unicode to utf-8 python - chuyển đổi unicode sang utf-8 python

Nổi tiếng

13.4K5 Huy hiệu vàng56 Huy hiệu bạc74 Huy hiệu đồng5 gold badges56 silver badges74 bronze badges

Đã trả lời ngày 22 tháng 5 năm 2014 lúc 15:15May 22, 2014 at 15:15

KenkenKen

3693 Huy hiệu bạc14 Huy hiệu Đồng3 silver badges14 bronze badges

3

Nếu tôi hiểu bạn một cách chính xác, bạn có một chuỗi byte được mã hóa UTF-8 trong mã của bạn.

Chuyển đổi chuỗi byte thành chuỗi unicode được gọi là giải mã (unicode-> chuỗi byte là mã hóa).

Bạn làm điều đó bằng cách sử dụng hàm Unicode hoặc phương thức giải mã. Một trong hai:

unicodestr = unicode(bytestr, encoding)
unicodestr = unicode(bytestr, "utf-8")

Or:

unicodestr = bytestr.decode(encoding)
unicodestr = bytestr.decode("utf-8")

Đã trả lời ngày 15 tháng 11 năm 2010 lúc 8:55Nov 15, 2010 at 8:55

codeapecodeapecodeape

95.5K24 Huy hiệu vàng151 Huy hiệu bạc181 Huy hiệu đồng24 gold badges151 silver badges181 bronze badges

city = 'Ribeir\xc3\xa3o Preto'
print city.decode('cp1252').encode('utf-8')

Đã trả lời ngày 26 tháng 7 năm 2017 lúc 20:31Jul 26, 2017 at 20:31

WillemwillemWillem

1.2941 Huy hiệu vàng8 Huy hiệu bạc7 Huy hiệu đồng1 gold badge8 silver badges7 bronze badges

0

Trong Python 3.6, họ không có phương thức unicode () tích hợp. Chuỗi đã được lưu trữ dưới dạng Unicode theo mặc định và không cần chuyển đổi. Thí dụ:

my_str = "\u221a25"
print(my_str)
>>> √25

Đã trả lời ngày 20 tháng 4 năm 2017 lúc 15:53Apr 20, 2017 at 15:53

Hướng dẫn convert unicode to utf-8 python - chuyển đổi unicode sang utf-8 python

Dịch với ord () và unichar (). Mỗi char unicode đều có một số được liên kết, một cái gì đó giống như một chỉ mục. Vì vậy, Python có một vài phương pháp để dịch giữa một char và số của anh ta. Nhược điểm là một ví dụ. Hy vọng nó có thể giúp đỡ.

>>> s = "Hello!"
>>> u = unicode(s, "utf-8")
0

Đã trả lời ngày 9 tháng 11 năm 2017 lúc 17:24Nov 9, 2017 at 17:24

Joe9008Joe9008Joe9008

6257 Huy hiệu bạc12 Huy hiệu Đồng7 silver badges12 bronze badges

  • Đầu tiên,
    >>> s = "Hello!"
    >>> u = unicode(s, "utf-8")
    
    5 trong Python được thể hiện trong
    >>> s = "Hello!"
    >>> u = unicode(s, "utf-8")
    
    6.
  • Thứ hai,
    >>> s = "Hello!"
    >>> u = unicode(s, "utf-8")
    
    7 là một tiêu chuẩn mã hóa để mã hóa chuỗi
    >>> s = "Hello!"
    >>> u = unicode(s, "utf-8")
    
    6 thành
    >>> s = "Hello!"
    >>> u = unicode(s, "utf-8")
    
    9. Có nhiều tiêu chuẩn mã hóa ngoài kia (ví dụ:
    stringnamehere.decode('utf-8', 'ignore')
    
    0,
    stringnamehere.decode('utf-8', 'ignore')
    
    1,
    stringnamehere.decode('utf-8', 'ignore')
    
    2, v.v.).

Khi khách hàng gửi dữ liệu đến máy chủ của bạn và họ đang sử dụng

>>> s = "Hello!"
>>> u = unicode(s, "utf-8")
7, họ đang gửi một loạt
>>> s = "Hello!"
>>> u = unicode(s, "utf-8")
9 chứ không phải
>>> s = "Hello!"
>>> u = unicode(s, "utf-8")
5.

Bạn đã nhận được một

>>> s = "Hello!"
>>> u = unicode(s, "utf-8")
5 vì "thư viện" hoặc "khung" mà bạn đang sử dụng, đã ngầm chuyển đổi một số
>>> s = "Hello!"
>>> u = unicode(s, "utf-8")
9 ngẫu nhiên thành
>>> s = "Hello!"
>>> u = unicode(s, "utf-8")
5.

Dưới mui xe, chỉ có một loạt

>>> s = "Hello!"
>>> u = unicode(s, "utf-8")
9. Bạn chỉ cần yêu cầu "thư viện" cung cấp cho bạn nội dung yêu cầu trong
>>> s = "Hello!"
>>> u = unicode(s, "utf-8")
9 và bạn sẽ tự xử lý việc giải mã (nếu thư viện không thể cung cấp cho bạn thì nó đang cố gắng thực hiện ma thuật đen thì bạn không nên sử dụng nó).

  • Giải mã
    >>> s = "Hello!"
    >>> u = unicode(s, "utf-8")
    
    7 được mã hóa
    >>> s = "Hello!"
    >>> u = unicode(s, "utf-8")
    
    9 thành
    >>> s = "Hello!"
    >>> u = unicode(s, "utf-8")
    
    5:
    def make_unicode(inp):
        if type(inp) != unicode:
            inp =  inp.decode('utf-8')
        return inp
    
    4
  • Mã hóa
    >>> s = "Hello!"
    >>> u = unicode(s, "utf-8")
    
    5 đến
    >>> s = "Hello!"
    >>> u = unicode(s, "utf-8")
    
    7
    >>> s = "Hello!"
    >>> u = unicode(s, "utf-8")
    
    9:
    def make_unicode(inp):
        if type(inp) != unicode:
            inp =  inp.decode('utf-8')
        return inp
    
    8

Đã trả lời ngày 7 tháng 8 năm 2020 lúc 0:11Aug 7, 2020 at 0:11

Hướng dẫn convert unicode to utf-8 python - chuyển đổi unicode sang utf-8 python

Shiokoshiokoshioko

3053 Huy hiệu bạc11 Huy hiệu đồng3 silver badges11 bronze badges

Bạn cũng có thể làm điều này:

>>> s = "Hello!"
>>> u = unicode(s, "utf-8")
1

Đã trả lời ngày 19 tháng 7 năm 2021 lúc 16:25Jul 19, 2021 at 16:25

Hướng dẫn convert unicode to utf-8 python - chuyển đổi unicode sang utf-8 python

KevinkevinKevin

16 huy hiệu đồng6 bronze badges

1

Bạn có thể sử dụng mô -đun thư viện tiêu chuẩn của Python.

>>> s = "Hello!"
>>> u = unicode(s, "utf-8")
2

Đã trả lời ngày 20 tháng 9 năm 2021 lúc 22:26Sep 20, 2021 at 22:26

Hướng dẫn convert unicode to utf-8 python - chuyển đổi unicode sang utf-8 python

HCckshacckhaccks

102K24 Huy hiệu vàng168 Huy hiệu bạc257 Huy hiệu đồng24 gold badges168 silver badges257 bronze badges

URL được dịch sang ASCII và máy chủ Python, đây chỉ là một chuỗi Unicode, ví dụ: "T%C3%A9ST%C3%A3O"

Python hiểu "é" và "Ã" là thực tế %C3 %A9 và %C3 %A3.

Bạn có thể mã hóa một URL như thế này:

>>> s = "Hello!"
>>> u = unicode(s, "utf-8")
3

Xem https://www.adamsmith.haus/python/answers/how-to-decode-a-utf-8-url-in-python để biết chi tiết.

Đã trả lời ngày 1 tháng 9 lúc 10:20Sep 1 at 10:20

Hướng dẫn convert unicode to utf-8 python - chuyển đổi unicode sang utf-8 python

Làm cách nào để chuyển đổi sang UTF

Sử dụng encode () để chuyển đổi một chuỗi thành UTF-8. to convert a String to UTF-8.

Làm thế nào để bạn chuyển đổi một chuỗi với mã hóa unicode thành một chuỗi các chữ cái 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.

Python có thể xử lý unicode không?

Loại chuỗi của Python sử dụng tiêu chuẩn Unicode để biểu diễn các ký tự, cho phép các chương trình Python hoạt động với tất cả các ký tự có thể khác nhau này., which lets Python programs work with all these different possible characters.

.Encode làm gì trong Python?

Định nghĩa và sử dụng Phương thức mã hóa () mã hóa chuỗi, sử dụng mã hóa được chỉ định.Nếu không có mã hóa được chỉ định, UTF-8 sẽ được sử dụng.encodes the string, using the specified encoding. If no encoding is specified, UTF-8 will be used.