עבור לתוכן

כיצד להתייחס לקובץ txt בעברית (עם עדיפות לשפת c)?

Featured Replies

פורסם

מישהו אולי יודע איך כתוב קובץ txt בעברית?

הכוונה האם הקידוד הוא מימין לשמאל או משמאל לימין...

נניח שיש לי קובץ txt ובו המילה "אחלה"

האם הstring בקובץ יראה כמו "n/ ה ל ח א" (מימין לשמאל) או "n/ א ח ל ה"

שאלה נוספת:

אם אני שומר קובץ txt בעברית ורוצה לקרוא אותו מתוכנה שכתבתי בc:

בקידוד UTF-8 כל אות היא 4 ביטים נכון? איך אני יכול להגדיר בc שהמשתנה מטיפוס char יהיה עם 4 ביטים? או שאני חייב להשתמש בint?

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

אם אני לא יכול לשנות את הchar, איך אפשר לעבוד עם קובץ טקסט בעברית שמשלב מספרים (ואותיות באנגלית גם כן, גם הן בUTF-8)?

ולא, זה לא לשיעורי בית... :)

פורסם

אין כזה דבר "קידוד מימין לשמאל" או "משמאל לימין". טקסט בעברית כתוב בדיוק כמו טקסט באנגלית - לפי הסדר. אם הטקסט שלך הוא "אחלה" אז האות הראשונה היא 'א', השנייה היא 'ח' וכן הלאה. זה באחריות התוכנה שמציגה את הטקסט להחליט באיזה סדר להציג אותו (התוכנה אמורה "להבין" שהיא מציגה עברית, ולכן להציג את התווים בסדר ובכיוון הנכון).

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

לגבי utf-8, יש לך טעות גדולה בהבנה. utf-8 הוא קידוד ברוחב משתנה, כלומר כל תו יכול להיות מיוצג ע"י מספר משתנה של בתים (bytes, לא ביטים). תווים באנגלית מיוצגים ע"י בית אחד (בדיוק כמו ascii, ככה ש-utf-8 הוא למעשה תואם לאחור), תווים בשפות מסויימות (כגון עברית) מיוצגים ע"י שני בתים, תווים מסויימים מיוצגים ע"י 3 בתים, ואחרים ע"י 4 בתים.

http://he.wikipedia.org/wiki/UTF-8

הטיפוס char אכן מתאים רק לקידוד ascii (כי הוא מסוגל להחזיק רק 8 ביט). לקידודים אחרים משתמשים ב-int (אם תשים לב, פונקציות כמו getc ו-getchar מחזירות int ולא char). כשעובדים עם מחרוזות של utf-8, עובדים עם *char, אבל לא כל תו במחרוזת בהכרח מיוצג ע"י char אחד.

יש כל מיני דרכים לעבוד עם utf-8 ועם utf-16, וזה תלוי באופי של האפליקציה שלך, מערכת ההפעלה וכו'.

פורסם
  • מחבר

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

תודה על העזרה.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים