ผม save ไฟล์เป็นแบบ utf8 ครับ
ถ้าเป็น ascii ธรรมดาไม่มีปัญหาอะไร
# -*- coding: utf-8 -*-
def fRigthString(str="",w=0):
xstr = str.decode("cp874") #น่าจะผิดบริเวณนี้ xResult = "" xLenStr= len(xstr) if xLenStr <> 0 or w <> 0: if w > xLenStr: w=xLenStr i = xLenStr-1 #start copy char from rigth to left j = 0 #count varible for loop while j xResult = xstr[i]+xResult i=i-1 j=j+1
return xResult
print fRigthString(u"abcefgegaทดสอบ",4)
เคยเจออะไ
kowito2 Thu, 23/10/2008 - 12:07
เคยเจออะไรคล้ายๆ ผิดตรงที่พยายาม decode นั่นแหละครับ แต่ยังหาวิธีไม่ได้
right ครับ
Iowan Thu, 23/10/2008 - 12:34
In reply to เคยเจออะไ by kowito2
right ครับ ไม่ใช่ rigth
xstr =
anu Thu, 23/10/2008 - 13:18
xstr = str.decode("cp874") #น่าจะผิดบริเวณนี้
ทำไมถึงต้อง decode อีกรอบล่ะครับ ในเมื่อไฟล์มันเป็น utf-8 อยู่แล้ว
ลองเปลี่ยนเป็น xstr = str ก็น่าจะใช้ได้รึเปล่าครับ
ใช่เลยครั
bow_der_kleine Thu, 23/10/2008 - 15:01
In reply to xstr = by anu
ใช่เลยครับ xstr = str หรือให้ง่ายขึ้นไปอีก
def fRigthString(xstr="",w=0):
เพราะ str มันเป็น builtin-type ตั้งชื่อตัวแปรแบบนี้ไม่ผิด แต่อันตราย
จากที่อ่านโค้ด ใช้ string-slicing ไม่ง่ายกว่าเหรอครับ เช่น เรียงจากขวาไปซ้าย
xstr = u"abcefgegaทดสอบ"[::-1]
จากขวาไปซ้ายจนถึงตัวที่สี่นับจากหลัง
xstr = u"abcefgegaทดสอบ"[-1:-5:-1]
จากซ้ายไปขวาเริ่มจากตัวที่สี่นับจากหลัง
xstr = u"abcefgegaทดสอบ"[-4:]
BioLawCom.De
เป้าหมายค
preecha13 Thu, 23/10/2008 - 17:37
เป้าหมายคือต้องการสร้างฟังก์ชั่น right(string,ความกว้างที่ต้องการ) เหมือนใน
vb6 ครับ จะเอาไปทำเกี่ยวกับการรันรหัสต่างเช่น 00001 อะไรประมาณนี้นะครับ
งั้นประมา
bow_der_kleine Thu, 23/10/2008 - 21:07
In reply to เป้าหมายค by preecha13
งั้นประมาณนี้ก็คงได้ครับ
def right(str_in, w=1) : return str_in[-w:]
BioLawCom.De
ได้แล้วคร
preecha13 Fri, 24/10/2008 - 14:48
In reply to งั้นประมา by bow_der_kleine
ได้แล้วครับ ขอบคุณครับ
ถามเพิ่มครับ ผมสั่งแบบด้านล่างนี้แล้วมัน error แบบนี้นะครับทำไง
แต่พอไม่ใส่ ก ก็ไม่มีปัญหานะครับ
print (u'000000'+u'ก10')[-5:]
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0e01' in position 2: ordinal not in range(128)
อ้อ
preecha13 Sat, 25/10/2008 - 15:02
In reply to ได้แล้วคร by preecha13
อ้อ แก้ได้แล้วครับทำโดยการ เช่น
print (u'000000'+u'จข20')[-4:].encode('utf-8')