Python 3 ใช้การเข้ารหัส UTF-8 สำหรับไฟล์ซอร์สโค้ดตามค่าเริ่มต้น ฉันควรใช้การประกาศการเข้ารหัสที่จุดเริ่มต้นของไฟล์ต้นฉบับทุกไฟล์หรือไม่ ชอบ# -*- coding: utf-8 -*-
Python 3 ใช้การเข้ารหัส UTF-8 สำหรับไฟล์ซอร์สโค้ดตามค่าเริ่มต้น ฉันควรใช้การประกาศการเข้ารหัสที่จุดเริ่มต้นของไฟล์ต้นฉบับทุกไฟล์หรือไม่ ชอบ# -*- coding: utf-8 -*-
คำตอบ:
เนื่องจากค่าดีฟอลต์คือ UTF-8 คุณจึงต้องใช้การประกาศนั้นเมื่อคุณเบี่ยงเบนไปจากค่าเริ่มต้นหรือหากคุณใช้เครื่องมืออื่น ๆ (เช่น IDE หรือโปรแกรมแก้ไขข้อความ) เพื่อใช้ประโยชน์จากข้อมูลนั้น
กล่าวอีกนัยหนึ่งเท่าที่ Python เกี่ยวข้องก็ต่อเมื่อคุณต้องการใช้การเข้ารหัสที่แตกต่างออกไปคุณต้องใช้การประกาศนั้น
เครื่องมืออื่น ๆ เช่นตัวแก้ไขของคุณสามารถรองรับไวยากรณ์ที่คล้ายกันได้ซึ่งเป็นเหตุผลว่าทำไมข้อกำหนดPEP 263 จึงช่วยให้ไวยากรณ์มีความยืดหยุ่นได้มาก (ต้องเป็นข้อคิดเห็นข้อความcoding
จะต้องอยู่ที่นั่นตามด้วยอักขระ:
หรือ=
อักขระและช่องว่างที่เป็นทางเลือก ตามด้วยตัวแปลงสัญญาณที่รู้จัก)
โปรดทราบว่าจะใช้เฉพาะกับวิธีที่ Python อ่านซอร์สโค้ดเท่านั้น ใช้ไม่ได้กับการเรียกใช้รหัสนั้นดังนั้นจึงไม่ใช่วิธีการพิมพ์การเปิดไฟล์หรือการดำเนินการ I / O อื่น ๆ ที่แปลระหว่างไบต์และ Unicode สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับ Python, Unicode และการเข้ารหัสฉันขอแนะนำให้คุณอ่านPython Unicode HOWTOหรือพูดคุยPragmatic Unicodeอย่างละเอียดโดย Ned Batchelder
UTF-8
ซึ่งเป็นค่าเริ่มต้นสำหรับโปรเจ็กต์การเข้ารหัสหลายรายการ:
หากไฟล์บางไฟล์ถูกเข้ารหัสในไฟล์
non-utf-8
แม้ว่าสำหรับการเข้ารหัสเหล่านี้UTF-8
คุณควรเพิ่มการประกาศการเข้ารหัสด้วยเพราะกฎทองคือExplicit is better than implicit.
การกำหนดค่าการเข้ารหัสสำหรับไฟล์เฉพาะใน pycharm
# vim: set fileencoding=<encoding name> :
# -*- coding: utf-8 -*-
นี้อาจยังมีประโยชน์สำหรับผู้แก้ไขบางรายในการเปลี่ยนไปใช้การเข้ารหัสที่คาดไว้เมื่อแก้ไขไฟล์ต้นฉบับ