UnicodeDecodeError: รหัส Visual Studio 'utf-8' โดยใช้ Python 3.5.2

ฉันใช้ Visual Studio Code, Python 3.5.2, Windows 10

print("£")

สร้างสัญลักษณ์ 2 อันที่ฉันไม่คุ้นเคย

input("Enter pound sign: ") -> £

ก่อให้เกิดข้อผิดพลาด: UnicodeDecodeError: ตัวแปลงสัญญาณ 'utf-8' ไม่สามารถถอดรหัสไบต์ 0x9c ในตำแหน่ง 0: ไบต์เริ่มต้นไม่ถูกต้อง

ตัวอย่างข้างต้นทำงานได้อย่างสมบูรณ์แบบโดยใช้ Python IDLE ฉันได้ลองเปลี่ยนการเข้ารหัสภายใน Visual Studio Code โดยไม่ประสบความสำเร็จ

ฉันใช้ Python 3.5.2 มาระยะหนึ่งแล้วฉันไม่เคยมีปัญหานี้เลยเมื่อใช้ Sublime Text 3

คำแนะนำในการแก้ไขปัญหานี้จะได้รับการชื่นชมมาก


person Edster    schedule 16.09.2016    source แหล่งที่มา


คำตอบ (1)


ดูเหมือนว่าจะเป็นปัญหากับปลั๊กอิน Code Runner ของ VS Code . วิธีแก้ปัญหาคือการรันโค้ดในเทอร์มินัล เพิ่มบรรทัดต่อไปนี้ในไฟล์การตั้งค่าผู้ใช้หรือพื้นที่ทำงาน:

"code-runner.runInTerminal": false

สิ่งนี้ใช้ได้กับ Mac ฉันไม่แน่ใจเกี่ยวกับ Windows

โดยทั่วไปปัญหาคือการเข้ารหัสเริ่มต้นที่ใช้ในการพิมพ์บนคอนโซลไม่รองรับ UTF-8 คุณสามารถตรวจสอบการเข้ารหัสเริ่มต้นที่ใช้โดยดำเนินการดังต่อไปนี้:

import sys
print(sys.stdout.encoding)

เมื่อฉันใช้ปลั๊กอิน Code Runner ด้วยการตั้งค่าเริ่มต้น ค่านี้คือ US-ASCII แต่เมื่อรันโดยใช้เทอร์มินัลจะเป็น UTF-8

ขออภัย ฉันไม่รู้วิธีเปลี่ยนการเข้ารหัสเริ่มต้นสำหรับปลั๊กอิน Code Runner

person csiknor    schedule 07.01.2017