วิธีแก้ปัญหา unknown encoding: 874 ของ Python
ผู้ที่ใช้ python หรือ Anaconda บน Windows หากจะรันโปรแกรม หรืออัพเดต module ต่างๆแล้วพบกับ error แบบนี้
Fatal Python error: Py_Initialize: can’t initialize sys standard streams
LookupError: unknown encoding: 874
หรือตอนเรียกโปรแกรมผ่าน Anaconda Navigator แล้วขึ้นประมาณนี้
บางท่านจะแนะนำให้ไปเปลี่ยนภาษาใน Region ของ Windows ให้เป็นภาษาอังกฤษ แล้วจะไม่ error ซึ่งก็แก้ปัญหาได้เช่นกัน แต่ไม่ใช่วิธัแก้ที่ต้นเหตุ และจะมีปัญหาอื่นๆตามมา เช่นโปรแกรมอื่นๆที่มีการแสดงภาษาไทยอาจแสดงผลผิดเพี้ยนไปหมด
ทีนี้มาดูสาเหตุที่แท้จริงกัน ถือว่าเป็น bug เล็กๆก็ได้ เนื่องจาก เกิดจาก ไม่มีการกำหนด aliases ให้ encoding ภาษาไทย (874)
ดังนั้นเพียงเข้าไปเพิ่มที่ไฟล์ aliases.py ใน folder \Lib\encodings\ ของ python
( เช่นใน Anaconda จะอยู่ที่โฟลเดอรฺ์ C:\Users\username\Anaconda3\Lib\encodings\ )
โดยเปิดไฟล์ aliases.py ด้วย text editor จะเห็นการกำหนด encoding เป็นรูปแบบตัวแปร dictionary
ให้เราลองไล่ดูไปตามตัวอักษร จะเห็นเป็นรูปบบ # cpXXX codec เรียงไปเรื่อยๆ
ให้ทำการเพิ่ม 2 บรรทัดนี้แทรกเข้าไป
# cp874 codec
‘874’ : ‘cp874’,
จะได้เป็นประมาณนี้
แล้วทำการ save จากนั้นก็จะไม่ error แล้วจ้า
Fatal Python error: init_sys_streams: can’t initialize sys standard streams
LookupError: unknown encoding: 874
Current thread 0x00001b20 (most recent call first):
ทำแล้วไม่หายค่ะ ช่วยแนะนำหน่อย
ขอบคุณมากครับ
มีปัญหาพอดีเลยครับ ขอบคุณมากครับ