סימני שאלה במקום עברית: מה המשמעות של ? ו-�

במקום אותיות עבריות מופיעים ? או מעוינים �? הם דומים, אבל הסיבות שונות. לעיתים קרובות הקובץ עצמו תקין, אבל לפעמים האותיות כבר אבדו. כך תבינו איזה מקרה יש לכם.

עובד עם טקסט ועם הקבצים האלה:

  • CSV
  • TXT
  • JSON
  • XML
  • SRT
  • VTT
  • SMI
  • TSV
  • MD
  • HTML
  • SQL
  • LOG

למשל קובצי ייצוא מאקסל, גיבויים של מסדי נתונים, כתוביות וקוד של אתרים.

תיקון

  1. גררו קובץ או הדביקו טקסט
  2. התיקון נעשה אוטומטית
  3. העתיקו או הורידו את התוצאה
או גררו את הקובץ לכאן
  • בלי העלאה. הקבצים מתוקנים ישירות בדפדפן ולעולם לא יוצאים מהמכשיר שלכם.

  • שרתים באיחוד האירופי. Mojibuster פועל על שרת בפינלנד (האיחוד האירופי), ולכן חלה עליו תקנת הגנת המידע הכללית (GDPR). נוסח התקנה (EUR-Lex, באנגלית)

מקרה 1: מעוינים � בקובץ תקין

אם עורך, נגן או דפדפן מציגים � במקום כל האותיות העבריות, הקובץ שמור בדרך כלל בקידוד הישן Windows-1255 או ISO-8859-8, והתוכנה קוראת אותו כ-UTF-8. הבייטים של האותיות העבריות לא תקינים ב-UTF-8, ולכן התוכנה מציגה � רק בתצוגה. בקובץ עצמו הבייטים הנכונים נמצאים במקומם. עוד על שני הקידודים: Windows-1255 ו-UTF-8.

הפתרון: גררו את הקובץ המקורי לתיבה למעלה. Mojibuster מזהה את הקידוד בזמן הקריאה ושומר את הקובץ ב-UTF-8. חשוב: השתמשו בקובץ עצמו ולא בטקסט שהועתק מהתוכנה – בהעתקה ה-� נשארים לתמיד.

מקרה 2: � או ? נכתבו לתוך הטקסט

אם תוכנה שמרה או שלחה את הטקסט כבר עם �, האותיות המקוריות אבדו. כך גם עם ?: תוכנות מכניסות אותו כשאות לא קיימת בקידוד היעד. למשל בשמירה ב-ASCII, או בכתיבה לעמודה במסד נתונים שאין בה עברית. אז שלום הופכת ל-????.

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

מאיפה מגיעים סימני השאלה

  • מסד נתונים: עמודה או חיבור ב-latin1 או ב-ascii, והנתונים מגיעים ב-UTF-8. אז MySQL שומר ???? במקום עברית – ראו MySQL ו-phpMyAdmin.
  • אתר PHP ישן: הדף שמור ב-Windows-1255, אבל הקידוד לא מוגדר בכותרת או ב-<meta charset>. הדפדפן קורא אותו כ-UTF-8 ומציג �. ואם החיבור למסד הנתונים נפתח בלי קידוד, נכתבים למסד ? במקום אותיות.
  • פנקס רשימות, "שמירה בשם" ← ANSI: ב-Windows באנגלית ANSI הוא קידוד מערבי, והעברית נשמרת כ-?. ב-Windows בעברית ANSI הוא Windows-1255: העברית נשמרת, אבל תווים אחרים (למשל אימוג'י) הופכים ל-?.
  • תוכנות דוא״ל ישנות: הודעות ב-ISO-8859-8 בלי הצהרת קידוד נכונה נפתחות בתוכנות שמצפות ל-UTF-8 – ובמקום טקסט מופיעים �.
  • PowerShell 5.1: הפקודה Export-Csv כותבת כברירת מחדל ASCII ומחליפה אותיות עבריות ב-? – ראו PowerShell.
  • Python: הקוד encode('ascii', errors='replace') מחליף אותיות ב-? בלי אזהרה – ראו Python ו-pandas.
  • שורת הפקודה של Windows: היא עובדת בקידוד של המסוף (ב-Windows בעברית CP862) ומציגה תווים לא מוכרים כ-?. בדרך כלל רק התצוגה משובשת, לא הקובץ.

איך יודעים איזה מקרה יש לכם

  1. פתחו את הקובץ בעורך שמציג את הקידוד, למשל ב-Notepad++. אם בשורת המצב כתוב "ANSI" או "Windows-1255", זה מקרה 1.
  2. גררו את הקובץ ל-Mojibuster. אם הוא נקרא כ-Windows-1255 או כ-ISO-8859-8 והעברית חזרה, זה היה מקרה 1 – ראו Windows-1255 ו-UTF-8.
  3. אם Mojibuster מדווח על תווים שאבדו, זה מקרה 2. אז רק ייצוא חדש יעזור.

אם במקום סימני שאלה מופיעים צירופים כמו ùìåí או עברית, זו שגיאה אחרת, וכמעט תמיד אפשר לתקן אותה: מה זה ג'יבריש.

שאלות נפוצות

Mojibuster יכול להפוך ? בחזרה לאותיות?

לא. ? יכול להיות כל אות, והמידע אבד. Mojibuster לא נוגע במקומות האלה, אבל מציג כמה יש.

למה בתוכנה אחת מופיעים � ובאחרת הכול תקין?

זה אומר שהקובץ תקין, ורק אחת התוכנות קוראת אותו בקידוד שגוי. שמרו את הקובץ ב-UTF-8 עם Mojibuster, ושתי התוכנות יציגו אותו נכון.

מה זה הסימן �?

זה תו ההחלפה U+FFFD. תוכנות מכניסות אותו כשהן לא מצליחות לקרוא בייט כאות. הוא מעיד על שגיאת קידוד ואינו חלק מהטקסט עצמו.

מדריכים נוספים