UTF-32 (32-bit Unicode Transformation Format) הוא קידוד תווים, שיטה לייצוג אותיות וסמלים כמספרים. בכל תו ב־UTF-32 משתמשים ב־4 בתים (בית = 8 סיביות, סיבית היא יחידת מידע), כלומר 32 סיביות לכל תו. הקידוד פשוט: מספר הייצוג של כל תו מומר לבינארי באורך 32 סיביות ונשמר כמו שהוא. לדוגמה, A מקודד כ־0x00000041, π כ־0x000003C0 והתו הסיני 𣎴 מספרו U+233B4 מקודד כ־0x000233B4.
בשנות ה־90 תקן ISO 10646 תיאר שתי צורות: UCS-2 (16 סיביות) ו־UCS-4 (32 סיביות). בתחילה חשבו שלא יזדקקו ליותר מ־65,536 תווים, ולכן UCS-2 נראה מספק. עם התרחבות יוניקוד מעבר ל־65,536 תווים נוצרה דרישה לקידוד של 32 סיביות. UCS-4 הותאם ליוניקוד והוגבל לייצוג טווח של עד 0x10FFFF, וכך שמו שונה ל־UTF-32. כיום UTF-32 שומר על תמיכה בתווים בטווח הזה בלבד ומכיל סמנטיקות של יוניקוד שחשוב לכבד.
UTF-32 הוא קידוד בעל אורך קבוע: כל תו תופס תמיד 4 בתים. בשל כך פענוח הטקסט פשוט מאוד, אין צורך לקרוא כמה בתים שייכים לתו כמו בקידודים בעלי אורך משתנה. התקן מגביל את הקודים ל־21 סיביות, כלומר לטווח מ־0x000000 עד 0x10FFFF, וכך מובטח שאפשר לייצג כל תו חוקי ביוניקוד.
הפשטות היא היתרון העיקרי. קריאת טקסט ב־UTF-32 קלה ומהירה כי כל תו בגודל קבוע. זה מפחית טעויות בפענוח ומייעל פעולות פנימיות במחשב.
המחיר הוא בזבוז זיכרון. UTF-32 צורך יותר זיכרון מאשר UTF-16 ו־UTF-8, ולעתים פי ארבעה מקידודים ישנים כמו ASCII. לכן הוא פחות מתאים לאחסון ולשידור נתונים.
בפועל משתמשים ב־UTF-32 בעיקר כתצורת אחסון פנימית בזיכרון מערכת ההפעלה, משום שהעבודה איתו פשוטה. רבות ממערכות יוניקס ולינוקס ממירות טקסטים לקידוד פנימי דומה בעת הטיפול בהם. בלינוקס קבצים מאוחסנים בדרך כלל ב־UTF-8 אך המערכת ממירה אותם ל־UTF-32 ברמת העיבוד. Windows לעומת זאת אינה משתמשת ב־UTF-32 פנימית, אלא ב־UTF-16.
UTF-32 הוא דרך לכתוב אותיות ומסמלים כמספרים. כל אות תופסת 4 בתים. בית הוא יחידת אחסון של מחשב.
בתקופת התכנון היו שני סוגי קידוד: אחד של 2 בתים ואחד של 4 בתים. עם הזמן הוסיפו הרבה תווים ולכן צריך קידוד של 4 בתים. כך נוצר UTF-32.
ב־UTF-32 כל תו נשמר בסוף כמספר באורך קבוע. זה מקל על המחשב לקרוא טקסטים.
קל להבין ולטפל בטקסט כי כל תו בגודל אחיד.
זה צורך הרבה זיכרון. לכן לא שומרים קבצים בדרך כלל ב־UTF-32.
המערכות משתמשות בו לפעמים בתוך הזיכרון כשהן עוברות על טקסט. לינוקס אולי ממירה טקסט ל־UTF-32 לעיבוד. Windows לא משתמשת בו פנימית.
תגובות גולשים