ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
מתפתחאורח · ·
 

הודעה פורסם: 02/04/2015 - 10:32
נושא ההודעה: פייתון: הרצת קובץ עם עברית שעובד במקומי, נכשל בשרת

היי
יש לי קובץ שמכיל מחרוזות בעברית איתם הוא צריך לעבוד, כשאני מריץ את הסקריפט במחשב המקומי הסקריפט עובד נהדר, כשאני מנסה להריץ את הסקריפט בשרת הוא נכשל בגלל בעיית קידוד.
קוד:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 0: ordinal not in range(128)

כמובן הלכתי לבדוק מה הקידוד והוא utf-8 גם בקבצים שאותם אני קורא וגם קובץ הסקריפט.

היות ואני מתחבר לשרת עם ssh ניסיתי את הפיתרון של הבחור הבא (למטה)
http://stackoverflow.com/questions/10561923/unicodedecodeerror-ascii-codec-cant-decode-byte-0xef-in-position-1

ולשים את השורה הזאת בהערה אבל גם זה לא עזר
קוד:
 SendEnv LANG LC_*


אשמח לשמוע רעיונות ממי שמכיר את הבעיה.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mksoftלא בפורום כעתSite Admin ת.הצטרפות: 17/03/2002 · הודעות: 10514 · מיקום: כדור הארץ
 

הודעה פורסם: 02/04/2015 - 10:45
נושא ההודעה:

עריכה, לא בטוח שהתשובה למטה נכונה, מה בדיוק שמת בשורה הבעייתית, האם גרסאות הפייתון במחשב שלך והשרת זהות (פייתון 2 מול 3) ?

נא הדבק את קטע הקוד הבעייתי.

התשובה הקודמת:

מניח שמדובר בפייתון 2:

אתה צריך להצהיר את הקידוד המשמש אותך בקובץ, כמוסבר ב-PEP-263.

לדוגמא, אם הקידוד של המחרוזות הוא utf-8 שים בתחילת הקובץ:

קוד:
 # -*- coding: utf-8 -*-

_________________
הבלוג שלי
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 02/04/2015 - 10:58
נושא ההודעה:

יש לי את ההצהרה על הקידוד
באמת מדובר על פייתון 2 והשרת גם בפייתון 2

הפונקציה שנכשלת
קוד:

def replace_month(month):
    month_replace = {
        'בינואר':'01', 'January':'01',
        'בפבוראר':'02', 'בפברואר':'02', 'February':'02',
        'במרץ':'03', 'במרס':'03', 'March':'03',
        'באפריל':'04', 'April':'04',
        'במאי':'05', 'May':'05',
        'ביוני':'06', 'June':'06',
        'ביולי':'07', 'July':'07',
        'באוגוסט':'08', 'August':'08',
        'בספטמבר':'09', 'September':'09',
        'באוקטובר':'10', 'October':'10',
        'בנובמבר':'11', 'November':'11',
        'בדצמבר':'12', 'December':'12'
    }

    for month_name in month_replace:
        if month in month_name:
            return month_replace[month_name]


מיועדת להחליף שמות בעברית של חודשים כמו 'בפבו' (בפבואר) למספר חודש.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
queencyלא בפורום כעת ת.הצטרפות: 13/11/2008 · הודעות: 2139 ·
 

הודעה פורסם: 02/04/2015 - 11:43
נושא ההודעה:

קוד:

" פריט :".decode("utf-8")


אם אתה עובד עם קבצים
קוד:

codecs.open(BASE_PATH+'/database/'+FILE_NAME,"r",'CP862')

_________________
מערכת: GNU/Linux debian
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 02/04/2015 - 13:30
נושא ההודעה:

מעולם לא נתקלתי בשגיאה כזו > "בפבוראר"
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 02/04/2015 - 21:48
נושא ההודעה:

export PYTHONIOENCODING=utf-8

Before you run it on the server.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. אורח [מתפתח]
  2. mksoft
  3. אורח
  4. queency
  5. אורח
  6. אורח