Lỗi cú pháp Mã không phải UTF-8 bắt đầu bằng 'x80

学习编写Py程序时突然报错:

SyntaxError: Non-UTF-8 code starting with '\xbb' in file C:\Users\v\Desktop\Test.py on line 4, but no encoding declared; see //python.org/dev/peps/pep-0263/ for details


由于python内部使用的是unicode编码,而外部却要面对千奇百怪的各种编码,因此很容易导致编码问题
解决方法:在代码顶部加入

    # -*- coding: gbk -*-

借鉴文章:
https. //Blog. csdn. net/xz1308579340/bài viết/chi tiết/70242453
官方解决:
https. //www. con trăn. org/dev/peps/pep-0263/

Để hiển thị và chỉnh sửa tệp một cách chính xác, PyCharm cần biết nên sử dụng mã hóa nào. Nói chung, các tệp mã nguồn chủ yếu ở dạng UTF-8. Đây là mã hóa được đề xuất trừ khi bạn có một số yêu cầu khác

Để xác định mã hóa của tệp, PyCharm sử dụng các bước sau

  • Nếu có dấu thứ tự byte [BOM], PyCharm sẽ sử dụng mã hóa Unicode tương ứng bất kể tất cả các cài đặt khác. Để biết thêm thông tin, hãy xem Dấu thứ tự byte.

  • Nếu tệp khai báo mã hóa rõ ràng, PyCharm sẽ sử dụng mã hóa được chỉ định. Ví dụ: điều này có thể áp dụng cho các tệp XML hoặc HTML. Khai báo rõ ràng cũng ghi đè tất cả các cài đặt khác, nhưng bạn có thể thay đổi nó trong trình chỉnh sửa

  • Nếu không có BOM và không có khai báo mã hóa rõ ràng trong tệp, PyCharm sẽ sử dụng mã hóa được định cấu hình cho tệp hoặc thư mục trong. Nếu mã hóa không được định cấu hình cho tệp hoặc thư mục, PyCharm sẽ sử dụng mã hóa của thư mục mẹ. Nếu mã hóa thư mục mẹ cũng không được định cấu hình, PyCharm sẽ quay lại Mã hóa dự án và nếu không có dự án, sẽ chuyển thành Global Encoding.

Thay đổi mã hóa của tệp chứa mã hóa rõ ràng

  1. Mở tệp mong muốn trong trình chỉnh sửa

  2. Thay đổi thông tin mã hóa rõ ràng. Sử dụng đánh dấu lỗi để nhận dạng mã hóa sai và nhấn Ctrl + Dấu cách để hiển thị danh sách các mã hóa khả dụng

Thay đổi mã hóa được sử dụng để xem tệp

Nếu PyCharm hiển thị các ký tự trong tệp không chính xác, thì có thể nó không phát hiện được mã hóa tệp. Trong trường hợp này, bạn cần chỉ định mã hóa chính xác để sử dụng để xem và chỉnh sửa tệp này

  • Với tệp đang mở trong trình chỉnh sửa, hãy chọn Tệp. Thuộc tính tệp. Mã hóa tệp từ menu chính hoặc nhấp vào tiện ích Mã hóa tệp trên , và chọn mã hóa tệp chính xác.

    Danh sách mã hóa khá lớn. Bạn có thể sử dụng tìm kiếm tốc độ để nhanh chóng tìm thấy mã hóa chính xác. bắt đầu nhập khi cửa sổ bật lên mở

    Mã hóa được đánh dấu bằng hoặc có thể thay đổi nội dung tệp. Trong trường hợp này, PyCharm sẽ mở một hộp thoại nơi bạn có thể chọn những việc cần làm với tệp.

    • Tải lại . tải tệp trong trình chỉnh sửa từ đĩa và chỉ áp dụng các thay đổi mã hóa cho trình chỉnh sửa. Bạn sẽ thấy những thay đổi nội dung liên quan đến mã hóa đã chọn, nhưng tệp thực tế sẽ không thay đổi.

    • Chuyển đổi . ghi đè lên tệp bằng mã hóa đã chọn.

Thao tác này sẽ thêm liên kết cho tệp vào. PyCharm sẽ sử dụng mã hóa được chỉ định để xem và chỉnh sửa tệp này

Định cấu hình cài đặt mã hóa tệp

  • Nhấn Ctrl+Alt+S để mở cài đặt IDE và chọn Trình chỉnh sửa. Mã hóa tệp .

PyCharm sử dụng các cài đặt này để xem và chỉnh sửa các tệp mà nó không thể phát hiện mã hóa và sử dụng các mã hóa được chỉ định cho các tệp mới. Để biết thêm thông tin, hãy xem Mã hóa tệp

Sau khi xây dựng phiên bản với điểm vào là tệp nhị phân rỉ sét, khi tôi thử chạy nó, tôi nhận được thông báo lỗi này

Lỗi cú pháp. Mã không phải UTF-8 bắt đầu bằng '\xd1' trong tệp /home/user/breezy/brz trên dòng 2, nhưng không có mã hóa nào được khai báo; . //trăn. org/dev/peps/pep-0263/ để biết chi tiết

$ lsb_release -a
Không có mô-đun LSB nào khả dụng
ID nhà phân phối. Ubuntu
Sự miêu tả. Ubuntu 21. 04
Phóng thích. 21. 04
tên mã. rậm lông

Tôi khuyên bạn nên xóa tệp hiện có, tạo lại tệp [chạm vào test1. py], gắn thẻ nó [thẻ -to ISO 8859-1 test 1. py]. Sau đó, thêm một nội dung vào tệp và chạy nó

Thanks,
tatiana

UTF là gì

Lỗi này xảy ra khi tệp đã tải lên không ở định dạng UTF-8 . UTF-8 là định dạng mã hóa ký tự chiếm ưu thế trên World Wide Web. Lỗi này xảy ra do phần mềm bạn đang sử dụng lưu tệp ở một loại mã hóa khác, chẳng hạn như ISO-8859, thay vì UTF-8.

Không UTF là gì

Ký tự không phải UTF-8 là ký tự không được mã hóa UTF-8 hỗ trợ và chúng có thể bao gồm các ký hiệu hoặc ký tự từ nước ngoài. . Chúng tôi sẽ gặp lỗi nếu chúng tôi cố gắng lưu trữ các ký tự này vào một biến hoặc chạy một tệp chứa chúng.

Chủ Đề