Chuỗi python thành byte thô

Chúng ta có thể chuyển đổi byte thành Chuỗi bằng cách sử dụng phương thức đối tượng giải mã lớp byte [], vì vậy bạn cần giải mã đối tượng byte để tạo chuỗi. Trong Python 3, mã hóa mặc định là "utf-8", vì vậy bạn có thể sử dụng trực tiếp

đầu ra

tương đương với

đầu ra

Trong Python 2, mã hóa mặc định thành mã hóa chuỗi mặc định. Vì vậy, bạn nên sử dụng

đầu ra

Chúng ta có thể chuyển đổi chuỗi thành byte bằng cách sử dụng phương thức đối tượng encode[], vì vậy bạn cần mã hóa đối tượng chuỗi để tạo ra một byte

đầu ra

Ngoài ra, phương thức bytes[] của Python trả về một đối tượng bytes có kích thước và giá trị khởi tạo đã cho

đầu ra

Cả hai phương pháp trên để chuyển đổi một chuỗi thành byte đều hoàn toàn ổn. Phương thức mã hóa chuỗi [] và giải mã [] cung cấp tính đối xứng trong khi hàm tạo byte [] là cách tiếp cận hướng đối tượng và dễ đọc hơn. Bạn có thể chọn bất kỳ trong số họ dựa trên sở thích của bạn

Python phân biệt rõ ràng giữa byte và chuỗi. Các đối tượng byte chứa dữ liệu thô - một chuỗi octet - trong khi các chuỗi là các chuỗi Unicode. Chuyển đổi giữa hai loại này là rõ ràng. bạn mã hóa một chuỗi để nhận byte, chỉ định mã hóa [mặc định là UTF-8]; . Khách hàng của các chức năng này nên biết rằng các chuyển đổi như vậy có thể không thành công và nên xem xét cách xử lý các lỗi đó.

Chúc một ngày tốt lành, mọi người. Trong bài đăng này, chúng ta sẽ xem xét cách tìm giải pháp cho thách thức lập trình có tiêu đề Cách chuyển đổi chuỗi thành byte mà không cần mã hóa Python

>>> message = 'test 112 hello: what?!'
>>> message = message.encode['iso-8859-15']
>>> message 
b'test 112 hello: what?!'

Vấn đề với Cách chuyển đổi chuỗi thành byte mà không cần mã hóa Python có thể được giải quyết theo nhiều cách khác nhau, tất cả đều được nêu trong danh sách sau

import struct
def rawbytes[s]:
    """Convert a string to raw bytes without encoding"""
    outlist = []
    for cp in s:
        num = ord[cp]
        if num < 255:
            outlist.append[struct.pack['B', num]]
        elif num < 65535:
            outlist.append[struct.pack['>H', num]]
        else:
            b = [num & 0xFF0000] >> 16
            H = num & 0xFFFF
            outlist.append[struct.pack['>bH', b, H]]
    return b''.join[outlist]

Chúng tôi đã có thể khắc phục sự cố Cách chuyển đổi chuỗi thành byte mà không cần mã hóa Python bằng cách xem xét một số ví dụ khác nhau

Làm cách nào để bạn chuyển đổi một chuỗi thành một byte trong Python?

Chuyển đổi chuỗi thành byte

  • chuỗi = "Xin chào thế giới"
  • # chuỗi có mã hóa 'utf-8'
  • mảng = byte [chuỗi, 'utf-8']
  • mảng2 = byte [chuỗi, 'ascii']
  • in[mảng,'\n']

Làm thế nào để bạn biến một chuỗi thành một byte?

Lớp Chuỗi cung cấp ba phương thức getBytes quá tải để mã hóa Chuỗi thành một mảng byte. getBytes[] – mã hóa bằng bộ ký tự mặc định của nền tảng. getBytes [String charsetName] – mã hóa bằng cách sử dụng bộ ký tự được đặt tên. getBytes [Bộ ký tự Charset] – mã hóa bằng bộ ký tự được cung cấp. 6 ngày trước

Byte có bất biến trong Python không?

bytes là một phiên bản không thể thay đổi của bytearray - nó có cùng các phương thức không thay đổi và cùng hành vi lập chỉ mục và cắt lát. hàm bytearray[]. Trả về một mảng byte mới. Loại bytearray là một chuỗi số nguyên có thể thay đổi trong phạm vi 0

Chủ Đề