שבוע 9- יום2- שאלה 2- שאלת קידוד

היי,
חילקתי את קוד השח לכמה קבצים.
כאשר אני רוצה להדפיס את הלוח אני מקבלת את ההודעת שגיאה הבאה:
UnicodeEncodeError: ‘charmap’ codec can’t encode character ‘\u265c’ in position 1: character maps to
הצלחתי להבין כי ההתייחסות היא לקידוד של rook אך לא מצאתי כיצד לפתור את הבעיה.
(בjupyter לא הייתה לי בעייה בהצגת הלוח וכלי המשחק שעליו)

אשמח לעזרה,
תודה!

לייק 1

למקרה שעוד מישהו ייתקל בבעיה, מצאתי פתרון לבסוף :slight_smile:
בראש הקובץ chess.py יש להוסיף את השורות הבאות:
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding=‘utf8’)

2 לייקים

אוי לא :scream:
אתה מריץ בעזרת Visual Code או התוסף Code Runner?

אני מריצה בעזרת התוסף Code Runner , זה מה שגורם לבעיה מלכתחילה?

סורי על הבלבול במגדר :man_facepalming:
יש לי הרגשה שכן. אם את מסירה את התוסף ומריצה בעזרת ה־Play הקטן למעלה, זה עובד?

יכול לאמת שזה פותר את הבעיה :slight_smile:
נתקלתי גם בבעיה הזאת

ממליץ לעשות disable רק מסביבת העבודה הנוכחית:

disable

2 לייקים

ממחקר קצר שלי בעבר וממה שאני זוכר, הסיבה היא ש־Code Runner משתמש בטרמינל של מערכת ההפעלה, שלא רגיל להתמודד עם קידודים מודרניים

2 לייקים

עשיתי disable לתוסף.
אם אני מריצה עכשיו דרך הplay הקטן למעלה חוזרת לי ההודעת שגיאה.
אבל אם אני לוחצת על Run שנמצא בתפריט למעלה ואז על Run without debugging
הלוח שחמט מוצג לי.

2 לייקים

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

היי, אתה יכול לנסות את השיטה הבאה
https://www.programmersought.com/article/3680252795/
שם הבעיה היא עם סינית :slight_smile:
מקווה שיעזור לך

2 לייקים

זה באמת הפתרון שכנראה אשתמש בו, מפתיע אבל שכלי מוכר כמו code runner לא מסוגל להתמודד עם unicode :man_shrugging:
תודה :slight_smile:

לייק 1

תיקון: set PYTHONIOENCODING=utf8 && python -u
בsettings.json:

"code-runner.executorMap": {
    "python": "set PYTHONIOENCODING=utf8 && python -u",

השורה הזאת שמתווספת לקונפיגורציה לפי הפוסט ששלחת מסדרת את הcode runner מבחינת הקידוד והוא מדפיס טוב את השח גם בלי להריץ מהטרמינל :slight_smile:

6 לייקים

חיים דבש, תודה על העדכון

2 לייקים

איפה כותבים את הפקודה הזאת?
בcmd?
בלי הגרשיים?

לא, מוסיפים את זה לsettings.json שזה קובץ שנמצא בתיקיית .vscode

לייק 1

השורה הזאת ספציפית כדאי להוסיף תחת ההגדרות הכלליות ב-
File > Preferences > Settings
ללחוץ על הכפתור מימין למעלה - Open Settings (JSON)
להוסיף את השורה הזו שם.

לייק 1

תודה רבה על הטיפ המועיל,
שאלה נוספת, לאחר שהוספתי את הקוד בsetting, שמתי לב שאני לא יכול לשנות את ההגדרות למשל של השמירה האוטומטית, כשאני מנסה אני מקבל את ההודעה הזאת:

הsetting שלי נראה ככה:


כשאני מוריד את הקוד שהעתקתי מהדיון הזה, אני יכול לשנות את ההגדרות של השמירה.

עריכה:
הסתדרתי, היה חסר סוגר לסוגריים }

לייק 1