สอบถาม Python Encode-Decode ครับ

ผมทำการอ่านข้อมูลมาจากไฟล์ชื่อ file_111.txt
สมมติว่า ภายในไฟล์ มี 30,000 record
แต่ละ record มี 15 คอลัมน์
แบ่งแต่ละคอลัมน์ ด้วย tab

ทำการ split ข้อมูลที่ละ 1 record เข้าไปเก็บใน list ก่อน
แล้วจึงค่อยอ่านข้อมูลใน list ลงไปเก็บในไฟล์ file_222.txt อีกที

ซึ่ง item ใน list จะ write ลงไฟล์ได้เกือบหมด
จะติดบาง item ที่มีปัญหา คือ item ตัวสุดท้าย
ที่เก็บค่าของ URL คือ

ถ้า URL นั้นเก็บภาษาอังกฤษ ก็เก็บได้ปกติ
แต่ถ้า URL นั้นมีภาษาไทยปนอยู่ด้วย จะเกิด error และไม่ write ต่อ
รบกวนแนะนำด้วยครับ

ตัวอย่าง code
fo = open(file_111.txt', 'r', buffering=1, encodeing='utf-8', error='ignore')
fo.seek(0)
fn = open(file_222.txt, 'w')
fo.seek(0)
for a_row in fo:
    lo = a_row.split()
    lo1 = lo[8].encode('utf-8')
    lo2 = lo1.decode('utf-8')
    fn.write(lo[0], lo[3], lo[4], lo[5], lo[7], lo2)
print('Finish')
fo.close()
ln.close()

สมมติ lo[8] เป้น item ที่เก็บ URL นะครับ
อาจมีปรับไป-มานิดหน่อย
คือบางครั้ง ถ้ามีภาษาไทยสั้นๆใน URL ก็ปรับแก้ ก็จะรันต่อไปได้
แต่ก็จะติดกรณี ถ้ามีภาษาไทยยาวๆใน URL อยู่ดี
งง มากครั้บ ทำไมมันไม่ติดทุกเคส ติดเฉพาะเคสที่มีภาษาไทยยาวๆ

ใช้ PyChram Community 2016.3 ครับ
ขอบคุณล่วงหน้าครับ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่