stanford-oval/wikipedia huggingface dataset:
UTF-8
ההבדל בין יוניקוד ל-UTF-8

פרויקט יוניקוד החל כחלק ממאמץ ליצור מערכת תווים אחידה בינלאומית (באנגלית: UCS - Unified Character Set). בפשטנות גדולה ניתן לומר שיוניקוד הוא טבלה גדולה של תווים הממפה כל תו למספר המייצג אותו. יוניקוד אינו מפרט כיצד יש לייצג מספר זה במחשב. דרושה שיטה שבאמצעותה ניקח את המספר המייצג את התו ונשמור אותו במחשב בתור בית (או רצף של בתים). לשיטה זו אנו קוראים "קידוד תווים".
UTF-8 הוא קידוד תווים, הוא מורה לנו כיצד יש לקחת את המספר הייצוגי ולשמור אותו במחשב (וכיצד יש לקרוא מספרים השמורים במחשב ולהמירם למספרים ייצוגיים שלאחר מכן נוכל להמיר לתווים). אם ברשותנו טקסט ואנו מעוניינים להכניסו למחשב באמצעות קידוד יוניקוד, תחילה נחליף כל תו בטקסט למספרו הייצוגי לפי טבלת יוניקוד. כעת ברשותנו רצף של מספרים, באמצעות UTF-8 נשמור את המספרים הללו במחשב. UTF-8 מבוסס על יוניקוד בכך ששיטת השמירה שלו מבוססת על המספרים הייצוגיים שנקבעו ביוניקוד.
בעוד שקיים מיפוי אחד של תווים למספרים ייצוגיים בשם יוניקוד, קיימות דרכים רבות לשמור מספרים אלה במחשב, קרי, קיימים קידודי תווים רבים ליוניקוד. בהם UCS-2 ו-UCS-4 הפשוטים המורים לשמור את המספר באמצעות 2 או 4 בתים בהתאמה (קידודים אלה אינם בשימוש, שני בתים אינם מספיקים יותר לכל תווי יוניקוד ו-UCS-4 הפך ל-UTF-32) וכן גם קידודים מתוחכמים יותר כמו UTF-8 ו-UTF-16.
בעיית הצורות הארוכות

בשעת קידוד, מקודד ה-UTF-8 ממיר את התו המבוקש למספר לפי טבלת יוניקוד ואז, תלוי בערכו של אותו מספר, ממיר אותו למספר הבתים הנדרש. מפענח UTF-8 הקורא קטע שקודד קודם לכן קורא את הבתים, על-פי הסימונים מחליט כמה בתים עליו לקרוא לשם קבלת תו בודד, מוציא מבתים אלה את המספר ואז הולך לטבלת יוניקוד ורושם את התו המתאים.
אם ברצוננו לקודד את התו U+000A שהוא תו הזנת השורה, עלינו רק ללכת לפי אלגוריתם הקידוד ומיד נגלה שכל שעלינו לעשות הוא לכתוב בבית אחד את המספר 0x000A. אם מפענח UTF-8 יתקל בבית 0x000A, מיד ידע שמדובר בבית בודד המייצג תו בודד (הסיבית המשמעותית ביותר היא 0) ואז יבדוק מהו התו U+000A. נשאלת השאלה מה יקרה אם מפענח ה-UTF-8 יתקל באחד מרצפי הבתים הבאים:
0xC0 0x8A
0xE0 0x80 0x8A
0xF0 0x80 0x80 0x8A
נבחן את האפשרות הראשונה, 0xC0 0x8A, ההמרה הבינארית היא 10001010 11000000. הסיביות המודגשות הן הסיביות המכילות את המספר בהצגתו הבינארית, המספר הוא 0x000A ומייצג את התו U+000A ביוניקוד. הליך פיענוח דומה של שתי האפשרויות האחרות יביא לתוצאה זהה. נראה אם כן שניתן להציג תווים מסוימים ביותר מדרך אחת. לכאורה ניתן להציג תווים בדרך המומלצת (והחסכונית) או להציג אותם על ידי שימוש ביותר בתים.
הצגתו של תו על ידי יותר בתים ממה שצריך מכונה הצגתו ב"צורה הארוכה" (Overlong Form). בעבר נעשה שימוש זדוני באפשרות של הצגת תווים בצורתם הארוכה לשם עקיפת מנגנוני אבטחה שונים. תוכנות האבטחה לא פענחו את הקוד לפני הבדיקה אלא ביצעו את הבדיקה ישירות על הבתים המקודדים תוך כדי הסתמכות על אלגוריתם הקידוד המוכר ועל העובדה שכל תו מקודד בצורה הקצרה ביותר. בשיטה זו נעקפו מנגנוני הביטחון של שרתי IIS של מיקרוסופט. השימוש בצורה הארוכה של תווים מנע מתוכנת האבטחה למצוא אותם. עקב כך השימוש בצורות ארוכות נאסר על ידי סטנדרט RFC 3629.
טיפול בקלט לא תקין

הסטנדרטים המגדירים את UTF-8 אינם מגדירים תגובה אחידה לאופן בו צריך מפענח UTF-8 לנהוג אם הוא נתקל בקלט לא תקין (למשל בית המצהיר על התחלה של רצף של ארבעה בתים ולאחריו בית אחד בלבד, או למשל צורה ארוכה עליה נכתב קודם לכן). קיימות מספר אפשרויות לפיהן יכול המפענח לנהוג:
להחליף את התו המושחת בתו אחר כגון '�', '?', או תו אחר שמייצג תו לא תקין.
להתעלם מהבתים הלא תקינים.
לפענח את הבתים לפי קידוד תווים אחר (לעיתים קרובות ISO-8859-1).
לא לשים לב ולהמשיך לפענח כאילו שמדובר בקוד תקני של UTF-8 (אפשרי בייחוד כשמדובר בצורות ארוכות).
להפסיק לפענח ולדווח על שגיאה (אולי עם אפשרות לתת למשתמש להמשיך בקידוד בכל זאת).
קיימת אפשרות גם שהמפענח ינהג בצורה שונה כאשר הוא נתקל בסוגי קלטים לא תקינים שונים.
סטנדרט RFC 3629 דורש רק שמפענחי UTF-8 לא יפענחו "צורות ארוכות". סטנדרט היוניקוד דורש ש"כל מפענח יוניקוד יתייחס לכל קטע קוד שגוי כשגיאה. זה יבטיח שהוא לא יפרש או יפלוט רצף קוד שגוי".
הטיפול בקלטים לא תקינים חשוב מטעמי אבטחת מידע, כפי שראינו לגבי צורות ארוכות. ישנן שתי אפשרויות לטפל בקלט לא תקין ולשמור על ביטחון המידע: האפשרות הראשונה היא לפענח את קידוד UTF-8 לפני שעושים בדיקות כלשהן (ואז לבצע את הבדיקות על הטקסט המפוענח). האפשרות השנייה היא להשתמש במפענח שבמקרה של קלט לא תקין מוציא הודעת שגיאה או טקסט שהאפליקציה מחשיבה כבלתי מזיק. אפשרות נוספת היא כלל לא לפענח את קידוד UTF-8, אך זה מחייב את התוכנה אליה מעבירים את הטקסט המקודד לטפל בעצמה בקלט לא תקין.
חשיבות נוספת לזיהוי קלטים לא תקינים ודרך הטיפול בהם היא לשם טיפול במקרים של איבוד או השחתה של בתים. אם בית הושחת או אבד והמערכת מזהה מספר לא נכון של בתים המייצגים תו, ביכולתה למזער את הנזק לפגיעה בתו זה בלבד. התעלמות מהבעיה והנחה שכל הבתים מופיעים ללא בדיקה שאכן כל אחד מהבתים העוקבים תואם את הדגם, עלולה במקרה של בית אחד חסר להביא לקריסת הפענוח כולו והשחתה של הטקסט (בניגוד להשחתה של תו אחד).
יתרונות וחסרונות > כללי > יתרונות

UTF-8 מכיל בתוכו את ASCII (קידוד האותיות הזהות נעשה בצורה דומה בשני הקידודים). משום שכל טקסט שקודד ב-ASCII הוא גם טקסט תקני לפי UTF-8, אין צורך בשום פעולת המרה לטקסטים קיימים שכבר קודדו ב-ASCII. ניתן להשתמש ב-UTF-8 גם בתוכנות שתוכננו עבור קידודי ASCII מורחבים מסורתיים לאחר ביצוע מספר שינויים קלים ולעיתים אף ללא שינוי כלל.
מיון מחרוזות שקודדו ב-UTF-8 על ידי אלגוריתמים המסתמכים על מיון לפי בתים, יביא אותן התוצאות כאילו מוינו המחרוזות לפי המסרים המייצגים של התווים ביוניקוד (לעובדה זו השלכות מעטות בלבד שכן לא סביר שמיון זה ייצג צורך או מיון מקובל כלשהו).
UTF-8 ו-UTF-16 הם המיונים הסטנדרטים עבור מסמכי XML. שימוש בכל קידוד אחר מחייב ציון מיוחד על ידי אמצעי חיצוני או דרך הגדרת טקסט.
ניתן להפעיל כל אלגוריתם חיפוש המבוסס על חיפוש לפי בתים על טקסטים שקודד ב-UTF-8 (כל עוד מוודאים שהקלט תקין לפני כן). יש לשים לב לבנייה תקינה של ביטויים רגולריים ומבנים אחרים הסופרים תווים.
ניתן לזהות בצורה יחסית פשוטה ואמינה טקסטים שקודדו ב-UTF-8. הסיכוי שתו או מחרוזת שקודדו בקידוד אחר יראו כקידוד UTF-8 תקין נמוכים מאוד וככל שהטקסט ארוך יותר הם הולכים ופוחתים אף יותר. הבתים 0xC0, 0xC1, 0xFF-0xF5, למשל, לעולם לא יופיעו בטקסט שקודד ב-UTF-8. כדי להשיג תוצאות אמינות יותר, ניתן להשתמש בביטויים רגולריים בשביל לבדוק הימצאותם של צורות ארוכות או ערכים ממלאי מקום (surrogate values). למידע נוסף על העניין ניתן לפנות למקבץ השאלות הנפוצות: W3 FAQ: Multilingual Forms for a Perl regular expression to validate a UTF-8 string.
יתרונות וחסרונות > כללי > חסרונות

מפענח UTF-8 שנכתב בצורה לקויה ואינו תואם את הגרסאות העדכניות של הסטנדרטים, עלול לקבל מספר גרסאות שונות של ייצוגי תווים הנראים כמו ייצוגים חוקיים ב-UTF-8 (צורות ארוכות למשל) ולפענח אותם לתווי יוניקוד שהם כביכול מייצגים. בצורה זו מידע יכול לדלוף מעבר להליכי בדיקה ואימות שונים שתוכננו לבדוק מידע בייצוגו בשמונה סיביות.
יתרונות וחסרונות > בהשוואה לקידודים אחרים > בהשוואה לקידוד לגסי > יתרונות

UTF-8 יכול לקודד כל תו יוניקוד. ברוב המקרים, ניתן להמיר (אם כי לא לגמרי) כל טקסט שקודד בקידוד מיושן לקידוד יוניקוד ובחזרה מבלי לאבד מידע. משום ש-UTF-8 הוא קידוד יוניקוד, הדבר תקף גם לגביו.
ניתן לזהות בקלות היכן מתחיל ומסתיים כל תו מכל מקום ברצף הבתים (בשל הסימונים המורים שבית מסוים מתחיל רצף של בתים המייצגים תו בודד, כמה בתים מעורבים ברצף זה והסימון על כל אחד מהבתים הנוספים שהוא מהווה חלק מהרצף). כתוצאה מכך, אם נתחיל לסרוק את הטקסט המקודד מאמצע רצף בתים המייצג תו אחד, רק המידע על התו הבודד שהתחלנו את הסריקה מאמצע ייצוגו יאבד, וניתן להמשיך בפענוח תקין החל מהתו הבא. יתרון זה בא לידי שימוש אם בית אחד או מספר בתים מושחתים או אובדים ואז רק המידע על התווים שאותם בתים הרכיבו אובד וניתן לפענח בצורה נכונה את כל שאר הטקסט. סינכרון מחדש של קידוד מיושן שחלק מבתיו הושחתו או אבדו הוא מטלה קשה בהרבה.
לא ייתכן מצב בו רצף בתים המייצג תו בודד יוכל ברצף בתים ארוך יותר המייצג תו בודד אחר (או אותו תו בודד לצורך העניין), תופעה שכן קיימת בקידודי תווים אחרים בעלי אורך משתנה כמו Shift-JIS. באופן פרטי, תווי ASCII המקודדים, כזכור, כבית בודד, אינם מופיעים בקידוד UTF-8 בשום צורה אחרת (כחלק מרצף תווים ארוך יותר למשל), אלא רק במקומות בהם נדרש קידוד של התו המדובר. עובדה זו מאפשרת תאימות עם מערכות קבצים או תוכנות אחרות (למשל פונקציית ה-printf() של שפת C) המבצעות ניתוחים לפי ערכי ASCII השקופים לערכים אחרים.
הבית הראשון ברצף בתים המייצג תו בודד מספיק כדי לקבוע מהו אורך הרצף. הדבר מאפשר להוציא תת-מחרוזת מן המחרוזת מבלי לבצע ניתוח מתוחכם של הטקסט. אין הדבר נכון לרוב בקידודים מיושנים התומכים באורך משתנה.
UTF-8 אינו צורך שימוש בפעולות מתמטיות מסובכות כגון כפל או חילוק ומסתפק בפעולות על סיביות בלבד שהן פעולות מהירות בהרבה.
יתרונות וחסרונות > בהשוואה לקידודים אחרים > בהשוואה לקידוד לגסי > חסרונות

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

UTF-8 משתמש במספר קטן משמעותית של בתים לקידוד תווים שאינם תווי ASCII.
UTF-8 מקודד את התו "+" כעצמו בעוד ש-UTF-7 מקודד אותו כ"-+".
יתרונות וחסרונות > בהשוואה לקידודים אחרים > בהשוואה ל-UTF-7 > חסרונות

UTF-8 דורש מהמערכת להיות מערכת המבוססת על שמונה סיביות. במקרה של דואר אלקטרוני, משמעות הדבר היא שיש צורך בקידוד נוסף בשיטת Quoted Printable או base64. שלב זה של קידוד נוסף מוביל לגידול משמעותי בתפוסת הזיכרון שדורש הקידוד. עבור base64 מדובר בעלייה של שליש בצריכת הזיכרון. עבור Quoted Printable הגידול תלוי במה חלקם היחסי של תווי ASCII בטקסט. עבור טקסט שנכתב בצרפתית, תתרחש עלייה של 14% בתפוסת הזיכרון, אך טקסטים באותיות שאינן אותיות רומיות ואינם מכילים תווי ASCII יובילו לעלייה של 200% בצריכת הזיכרון. קידודו של כל טקסט המכיל יותר תווים שאינם תווי ASCII מאשר סימני "+" ב-UTF-7 יתפוס פחות זיכרון מאשר קידוד ב-UTF-8 משולב עם Quoted Printable, כאשר ההפרש בין השניים גדל ביחס ישר לאחוז היחסי של תווים שאינם תווי ASCII בטקסט (אפילו בשפות בהן מרבית האותיות הן אותיות ASCII, כמו צרפתית, קידוד ב-UTF-7 יהיה קטן ב-4% מאשר קידוד ב-UTF-8 עם Quoted Printable). בטקסטים רבים, הקידוד ב-UTF-7 יביס גם את הקידוד ב-UTF-8 משולב עם base64.
יתרונות וחסרונות > בהשוואה לקידודים אחרים > בהשוואה ל-UTF-16 > יתרונות

לא קיימים בתים שערכם 0 (תו ה-NUL בASCII) אלא אם מופיע התו U+0000 שהוא תו ה-NUL ביוניקוד. בזכות זה, פונקציות ספריית legacy של שפת C המטפלות במחרוזות (כמו strcpy() למשל) המשתמשות בתו ה-NUL כדי לציין סוף מחרוזת, לא יחתכו מחרוזות בשוגג לפני סיומן.
משום שתווי ASCII מקודדים באמצעות בית אחד, קידודם של טקסטים המורכבים בעיקר מאותיות לטיניות ללא ניקוד ב-UTF-8, יתפוס בערך חצי מהזיכרון שיתפוס קידוד אותם הטקסטים ב-UTF-16. קידודם של טקסטים רבים אחרים, שתוויהם אינם תווי ASCII, ב-UTF-8 יהיה קטן במעט מקידוד אותו הטקסט ב-UTF-16 בשל נוכחות רווחים.
רוב התוכנות הקיימות היום, ובהן גם מערכות ההפעלה, לא נכתבו תוך כדי מחשבה על יוניקוד. שימוש ב-UTF-16 על תוכנות אלו ייצור בעיות תאימות קשות ביותר שכן UTF-16 אינו מכיל בתוכו את ASCII, כמו UTF-8. UTF-8 מאפשר לתוכנות להמשיך להתייחס לתווי ASCII בדיוק כפי שהתייחסו אליהם קודם ולשנות התנהגותם רק לגבי תווים שאינם ב-ASCII שהם ממילא תלויי מקום.
ב-UTF-8, תווים שהם מחוץ למרחב הרב-לשוני הבסיסי אינם מקרה יוצא דופן.
UTF-8 משתמש בבית כיחידה הקטנה ביותר שלו, ואילו UTF-16 משתמש במילה בגודל 16 סיביות, אשר לרוב מיוצגת כזוג בתים. סדרם של בתים אלה בעייתי. קיימים מספר מנגנונים היכולים לטפל בנושא זה (למשל, "סימן סדר הבתים", ה-Byte Order Mask), אך הדבר עדיין מסבך את התוכנה ועיצוב הפרוטוקול.
אם מספר אי-זוגי של בתים יורד מהתחלתו של טקסט המקודד ב-UTF-16, התוצאה תהיה טקסט שאינו תואם את תקן UTF-16 או השחתה מוחלטת של הטקסט. לעומת זאת, ב-UTF-8 הורדה של בית יכולה במקרה הגרוע ביותר להשחית תו אחד ולכן הורדה של n בתים, במקרה הגרוע ביותר תשחית רק n תווים ושאר הטקסט יישאר תקין.
לעיתים מתייחסים בשגגה ל-UTF-16 כאל קידוד בעל אורך קבוע של שני בתים. יחס זה מוביל לתכנות מקודדים ומפענחים הפועלים על מרבית הטקסטים אך נכשלים עבור תווים שאינם במרחב הרב-לשוני הבסיסי. תיקון התוכנות הוא משימה קשה לרוב ולכן עדיף מראש ליישם תמיכה לכל טווח תווי יוניקוד.
יתרונות וחסרונות > בהשוואה לקידודים אחרים > בהשוואה ל-UTF-16 > חסרונות

קידודן של לוגוגרמות סיניות, יפניות וקוריאניות (בקיצור באנגלית: CJK - Chinese, Japanese, and Korean) דורש שלושה בתים ב-UTF-8, אך רק שני בתים ב-UTF-16. לכן, קידודו ב-UTF-16 של טקסט הכתוב בסינית, יפנית או קוריאנית, יצרוך פחות זיכרון מאשר אם נקודד את אותו הטקסט ב-UTF-8. קיימות עוד מספר קבוצות תווים פחות מוכרות שהדבר נכון גם לגביהן.
שימושים במערכות קיימות

UTF-8 הוא קידוד ברירת המחדל במערכות יוניקס ולינוקס.
שפת התכנות Java תומכת בקריאה וכתיבה של מחרוזות המקודדות ב-UTF-8, דרך המחלקות InputStreamReader ו-OutputStreamWriter. מאידך, למטרות של סיריאליזציה של אובייקטים, שימוש ב-Java Native Interface ולשם הטמעת קבועים בקובצי class, משתמשת Java בגרסה קצת שונה של UTF-8 המכונה UTF-8 משופר (modified UTF-8). ישנם שני הבדלים בין UTF-8 התקני לזה המשופר. הראשון שבהם הוא שתו ה-NUL, שסימונו ביוניקוד U+0000, מקודד באמצעות שני בתים במקום בית אחד בצורה: 10000000 11000000. שינוי זה מבטיח שבעת קידוד המחרוזת לא יוטמעו בה תווי NUL וכך נפתרת בעיית עיבוד המחרוזות בשפות כמו שפת C המשתמשות בתו ה-NUL כסימון לסיום מחרוזת וכל תו NUL מוטמע יביא לחיתוך המחרוזת בטרם עת. ההבדל השני הוא בצורת קידודם של תווים מחוץ למשטח הרב-לשוני הבסיסי. ב-UTF-8 התקני, מקודדים תווים אלה באמצעות ארבעה בתים. ב-UTF-8 המשופר, תווים אלה מומרים קודם כל לצורה של זוגות ממלאי מקום (surrogate pairs), כמו ב-UTF-16 ואז כל אחד מבני הזוג מקודד לבדו והקידודים נכתבים ברצף, כמו ב-CESU-8. הסיבה להבדל זה מעודנת יותר. ב-Java, אורכו של משתנה מסוג תו הוא 16 סיביות. מסיבה זו, חלק מתווי יוניקוד דורשים שימוש בשני משתנים מסוג תו לשם ייצוג הולם. תכונה זו של השפה אינה תואמת את ההתקדמות ביוניקוד וההחלטה לפרוץ את גבולות המרחב הרב-לשוני הבסיסי, אך היא חיונית לשם ביצועים ולשם תאימות לאחור ולכן לא סביר שתשתנה. השימוש ב-UTF-8 משופר מבטיח שניתן יהיה לפענח מחרוזות מקודדות על ידי פיענוח של יחידת קוד של UTF-16 אחת בכל פעם ולא על ידי פיענוח מספר ייצוגי אחד של יוניקוד בכל פעם. השימוש ב-UTF-8 משופר גורם לכך שקידודם של תווים הדורשים ארבעה בתים כאשר משתמשים בצורה התקנית של UTF-8, דורש ב-UTF-8 המשופר שימוש בשישה בתים.
מערכת ההפעלה, Mac OS X, המיועדת למחשבי מקינטוש, מקודדת את שמות הקבצים במערכת הקבצים שלה על ידי שימוש ב-UTF-8 המותאם ליוניקוד מופרד קנונית. לעיתים מתייחסים לגרסה זו של UTF-8 כאל UTF-8-MAC. ביוניקוד, אם ברצוננו לייצג למשל את האות Ä (האות האנגלית הגדולה A עם שתי נקודות מעליה), נוכל להשתמש בתו היוניקוד U+00C4, שהוא בדיוק האות Ä. לחלופין, נוכל גם להשתמש בתו U+0041 שהוא התו A (האות האנגלית הגדולה A) ומיד לאחריו לשים את התו U+0308 שהוא הסימן הדיאקריטי שתי נקודות מעל לאות. בעיקרון תקן היוניקוד קובע חוקים לשילוב סימנים דיאקריטיים. קיימים בתקן תווים מיוחדים הנקראים תווים משלבים (combining characters). כתיבת אות ולאחריה תווים משלבים אמורים להוביל להצגת האות עם הניקוד. מטעמי תאימות לאחור ומסיבות אחרות, חלק מהאותיות עם הניקוד קיימות כתו נפרד ביוניקוד. תווים אלה נקראים תווים מורכבים מראש (precomposed characters) והתקן קובע גם לאילו תווים הם שקולים. יוניקוד מופרד, או מפורק, קנונית הוא יוניקוד שבו נאסר השימוש בתווים מורכבים מראש ולכן חייבים להשתמש בשילוב של אותיות וסימנים דיאקריטיים בכל מקום שבו נחוץ תו עם סימן דיאקריטי. השימוש ביוניקוד מופרד מקל רבות על הליכי מיון אך יוצר בלבול בקרב תוכנות המניחות שתווים מורכבים הם הצורה השכיחה ושילוב של תווים משלבים נעשה רק עבור צירופים מיוחדים. (זוהי דוגמה להגוון ה-NFD לנירמול טקסט). קיים דיון נרחב בנושא במסמך Apple Computer's Q&A 1173.
משחק חברה ממוחשב

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

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

סדרת Mario Party – סדרת המשחקים הפופולרית ביותר בז'אנר אשר פותחה על ידי נינטנדו וכוללת דמויות מהזיכיון של מריו.
Jackbox Party Pack – סדרת משחקים שפותחה על ידי Jackbox Games עבור פלטפורמות רבות ואשר בהם השחקנים משתמשים בטלפונים החכמים שלהם בתור בקרים על מנת לקחת חלק במגוון אתגרים מוזרים ויצירתיים.
ראו גם

ערכים על משחקי חברה ממוחשבים
הערות שוליים

↑  David Thomas,  Kyle Orland,  Scott Steinberg, The Videogame Style Guide and Reference Manual, Power Play Publishing, 2007
| סוגות משחקי וידאו |
| --- | --- | --- |
| משחקי פעולה | משחק מכות (Hack and slash) • משחק לחימה • משחק פלטפורמה (משחק ריצה אינסופית) • משחק יריות (משחק ירי בגוף ראשון • Shoot 'em up • משחק יריות טקטי • משחק ירי בגוף שלישי • משחק באטל רויאל) |  |
| משחקי פעולה-הרפתקאות | משחק דמוי GTA • משחק התגנבות • משחק מטרוידבניה • משחק הישרדות-אימה |  |
| משחקי הרפתקה | משחק הרפתקאות גרפי • משחק הרפתקאות מבוסס טקסט • סרט אינטראקטיבי • רומן חזותי |  |
| משחקי תפקידים | משחק פעולה-תפקידים • Dungeon crawler • משחק תפקידים המוני ברשת • משחק תפקידים טקטי |  |
| משחקי אסטרטגיה | משחק אסטרטגיה בזמן אמת (הגנת מגדלים) • משחק אסטרטגיה מבוסס תורות • 4X • משחק ארטילריה ממוחשב • משחק זירת קרב מרובת משתתפים • משחק אסטרטגיה מקוון מרובה משתתפים בזמן אמת • משחק טקטיקה בזמן אמת • משחק טקטיקה מבוסס תורות • משחקי מלחמה ממוחשבים |  |
| משחקי סימולציה | סימולציות ניהול ובנייה (משחקי בניית ערים) • סימולציות חיים (סימולציות חברתיות • חיות מחמד וירטואליות) • משחק אלוהות • משחק ספורט ממוחשב • משחקי סימולציית כלי רכב (סימולציות טיסה • סימולציות טיסה בחלל • סימולציות מרוצים • משחקי מרוצי קארטינג • סימולציות רכבות) |  |
| סוגות אחרות | משחק חשיבה • משחק חינוכי • משחק התעמלות  • משחק וידאו מוזיקלי • משחק חברה ממוחשב • משחק שולחן ממוחשב |  |
| כללי | היסטוריה של משחקי הווידאו • משחק וידאו לשחקן יחיד • משחק מרובה משתתפים (Co-op • PVP) • משחק קונסולה • משחק מחשב • משחק ארקייד • משחק מובייל • משחק וידאו המבוסס על מיקום גאוגרפי • משחק מציאות מדומה • משחק רשת (משחק דפדפן • משחק רשת מרובה משתתפים • משחק רשת חברתית) • משחק מבוסס טקסט • משחק גלילה צדדית • משחקי עולם פתוח • משחק אינדי |  |
מיכל שיר

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

גדלה וחונכה בגבעתיים, בתם של גרציה (לבית סעדה) ומיכאל שיר. אביה, יליד ורשה, פולין, היה מייסד ועורך שבועון הילדים "אצבעוני". אִמה, ילידת סוריה, הייתה גרפיקאית וניהלה את העיתון בפועל.
למדה בבית הספר היסודי "יגאל אלון" ולאחר מכן, בתיכון שמעון בן צבי. בגיל 14 הצטרפה לפעילות במפלגת הליכוד והייתה שותפה להקמת ההיאחזות מעלה ישראל בשומרון. שירתה בצבא כמ"כית בנות בבה"ד 12. סיימה תואר ראשון במדע המדינה באוניברסיטת בר-אילן.
לאחר שחרורה מצה"ל השתתפה בהקמת מחלקת פניות הציבור של הליכוד. בהמשך, הייתה דוברת בוועדת הכנסת ועבדה בלשכתו של בנימין נתניהו, שבה הקימה את מערך התקשורת לקראת הבחירות המקדימות בליכוד בשנת 2002, שבהן הפסיד לאריאל שרון.
הייתה יועצת פוליטית של גדעון סער בשנים 2003–2005. עבדה כמנהלת פרויקטים בין השנים 2006 ו-2009 בקוקה-קולה – CBC-Group. שיר ייצגה את ישראל במשלחות רשמיות לאיחוד האירופי וייסדה ב-2009 את "המרכז הישראלי להכשרה פוליטית" – הגוף הראשון בישראל המכשיר יועצים למקצועות כנסת, ממשלה וגופי התקשורת.
ביוגרפיה > הבחירות לכנסת העשרים ואחת והבחירות לכנסת העשרים ושתיים

בבחירות לכנסת העשרים ואחת שובצה במקום ה-29 ברשימת הליכוד כנציגת מחוז תל אביב, ונבחרה לכנסת ה-21.
בבחירות לכנסת ה-22, לאחר צירוף מפלגת כולנו לרשימת הליכוד, שובצה במקום נמוך יותר – ה-31 ברשימה, ובכל זאת נבחרה לכנסת.
בפריימריז לראשות הליכוד ב-2019, הייתה שיר חברת הכנסת הראשונה שתמכה בסער. במאי 2019 מתחה ביקורת על כוונת ראש הממשלה נתניהו לתקן את חוק החסינות.
ביוגרפיה > הכנסת העשרים ושלוש והכנסת העשרים וארבע

ב־21 בדצמבר 2020 הצביעה שיר נגד המשך קיום ממשלת ישראל השלושים וחמש, בניגוד לעמדת מפלגתה, וכך הייתה בין המובילות בפיזור הכנסת ה-23. בהצבעה שנועדה להאריך את חיי הכנסת לכל הפחות בשבועיים, ובמה שכונה "ליל החניונים", התחבאה שיר ברכבה וגרמה לחברי הכנסת מטעם הליכוד לחשוב שהיא אינה נוכחת בהצבעה. אולם ברגע האמת הופיעה במליאה והצביעה נגד עם שלושה חברי כנסת נוספים מהקואליציה: (אסף זמיר, מיקי חיימוביץ' ורם שפע). בהיעדרה של שרן השכל נפלה ההצבעה, ויומיים לאחר מכן התפזרה הכנסת. ב-24 בדצמבר 2020 התפטרה שיר מהכנסת, כדי להצטרף למפלגת תקווה חדשה בראשות גדעון סער.
שיר שובצה במקום התשיעי ברשימת תקווה חדשה, אך המפלגה זכתה בשישה מנדטים ושיר נותרה מחוץ לכנסת. עם התפטרותו של גדעון סער במסגרת החוק הנורווגי נכנסה במקומו לכנסת.
ב-3 באוגוסט 2021 מונתה ליושבת ראש הוועדה לזכויות הילד.
ביוגרפיה > הכנסת העשרים וחמש

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

שיר נשואה לארז סגמן ואם לשניים. מתגוררת ברמת השרון.
עיקרי עשייתה הפרלמנטרית

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

↑  ענת כהן, ‏עוזר פרלמנטרי – מה זה בכלל, ואיך מגיעים למשרה כזו?, באתר גלובס, 1 במרץ 2012
↑  חיים לוינסון, נעה לנדאו, תוצאות הפריימריז בליכוד: אדלשטיין במקום הראשון, סער רביעי, באתר הארץ, 6 בפברואר 2019
↑  עוד ח"כית מהליכוד נגד השינוי בחוק החסינות: חקיקה פרסונלית היא שגיאה, באתר הארץ, 17 במאי 2019
1 2  דפנה ליאל וירון אברהם, ‏ליל החניונים: ח"כים התחבאו באוטו, התפרצו ברגע האחרון והפילו את הצעת החוק. צפו, באתר ‏מאקו‏, 22 בדצמבר 2020
↑  טל שלו‏, 3 דקות, 4 קולות, וקאט ברוטלי אחד: הרגע שבו נתניהו איבד את המושכות בכנסת, באתר וואלה, 22 בדצמבר 2020
↑  חזקי ברוך, ח"כ מיכל שיר מתפטרת מהכנסת ומצטרפת לגדעון סער, באתר ערוץ 7, 22 בדצמבר 2020
↑  בנצי רובין ואוריאל בארי, ‏כך נראית רשימת תקווה חדשה לכנסת, באתר "סרוגים", 3 בפברואר 2021
↑  מעריב אונליין, ‏מיכל שיר סגמן מתקווה חדשה תכהן כיו"ר הוועדה לזכויות הילד, באתר מעריב אונליין, 3 באוגוסט 2021
↑  יובל קרני, ח"כ מיכל שיר עוזבת את גדעון סער ועוברת ליש עתיד: "הכוח הפוליטי המרכזי", באתר ynet, 31 ביולי 2022
↑  N12 – סוף לתעלומת המעבר של מיכל שיר ליש עתיד?, באתר N12, ‏2022-09-28 (ארכיון)
↑  חזקי ברוך, אושר סופית החוק להכרה באחים שכולים, באתר ערוץ 7, 30 ביוני 2022
↑  שירית אביטן כהן, ‏חוק עכו עבר בכנסת: 16 יישובים יקבלו הטבות מס, באתר גלובס, 23 בנובמבר 2020
| חברי הכנסת המכהנים בכנסת העשרים וחמש |
| --- | --- | --- |
(חברי הכנסת ששמותיהם מודגשים מכהנים גם כשרים או כסגני שרים בממשלת ישראל השלושים ושבע)
| סיעות הקואליציה של ממשלת ישראל השלושים ושבע (68 חברי הכנסת)  | סיעות הקואליציה של ממשלת ישראל השלושים ושבע (68 חברי הכנסת)  |  |
| הליכוד (32) | נתניהו • לוין • גלנט • אוחנה • ברקת • דיכטר • ישראל כ"ץ • קרעי • ביטן • אדלשטיין • רביבו • דיסטל-אטבריאן • ואטורי • דנינו • גוטליב • מילביצקי • ביסמוט • סעדה • דלל • גמליאל • אופיר כץ • גולן • אילוז • קלנר • עטייה • הלוי • מלקו • שקלים • שטרית • פסל • גואטה • בוארון |  |
| ש"ס (11) | דרעי • מלכיאלי • ארבל • אזולאי • אבוטבול • בוסו • טייב • בצלאל • מישרקי • מלול • מושיאשוילי |  |
| הציונות הדתית (7) | סופר • סטרוק • רוטמן • וולדיגר • טל • סולומון • סוכות |  |
| יהדות התורה (7) | גפני • טסלר • אשר • אייכלר • פינדרוס • רוט • ברוכי |  |
| עוצמה יהודית (6) | בן גביר • וסרלאוף • אלמוג כהן • פוגל • סון הר-מלך • קרויזר |  |
| הימין הממלכתי (4) | סער • אלקין • השכל • בוסקילה |  |
| נעם (1) | מעוז |  |
| סיעות האופוזיציה (52 חברי הכנסת) | סיעות האופוזיציה (52 חברי הכנסת) |  |
| יש עתיד (24) | לפיד • מאיר כהן • אלהרר • מירב כהן • שטרן • מיקי לוי • בן ארי • בן ברק • סגלוביץ • טופורובסקי • שיר • רול • להב-הרצנו • בליאק • רון כץ • צרפתי הרכבי • מזרסקי • סאקס פרידמן • דבורה ביטון • טור-פז • דוידסון • שירי • מירון • ירון לוי |  |
| המחנה הממלכתי (8) | גנץ • איזנקוט • תמנו • טרופר • מיכאל ביטון • כהנא • פרקש-הכהן • שוסטר |  |
| ישראל ביתנו (6) | ליברמן • פורר • סובה • ניר • מלינובסקי • עמאר |  |
| רע"מ (5) | עבאס • טאהא • אל-הואשלה • ח'טיב-יאסין • חוג'יראת |  |
| חד"ש-תע"ל (5) | עודה • טיבי • תומא סלימאן • כסיף • עטאונה |  |
| העבודה (4) | מיכאלי • לזימי • קריב • רייטן |  |