UTF-32 (Unicode Transformation Format, 32 bit) è una codifica di caratteri Unicode in sequenze di numeri a 32-bit. È conosciuta anche come UCS-4 (Universal Character Set a 4 byte).
A differenza delle altre codifiche Unicode (UTF-8, UTF-16) che usano una rappresentazione dei dati a lunghezza variabile, UTF-32 è a lunghezza fissa. Proprio l'uso di 4 byte per ogni carattere lo porta a non essere molto efficiente sulla gestione dello spazio. Nello specifico, i caratteri al di fuori del Basic Multilingual Plane sono così rari che per molti testi possono essere considerati come inesistenti (ai fini del calcolo della dimensione), ma questo fatto rende la dimensione del testo codificato in UTF-32 da due a quattro volte più grande rispetto alle altre codifiche.
Anche se l'avere un numero fisso di byte per carattere da codificare può sembrare più semplice, questa codifica è usata meno frequentemente delle altre. Facilita la divisione di stringhe, ma non significativamente se confrontata con UTF-8 e UTF-16. Non semplifica il calcolo della lunghezza effettiva della stringa visualizzata se non in limitati casi, perché, anche con font a larghezza fissa ci possono essere più punti di codifica per ogni posizione di carattere (i caratteri combinati) o più di un carattere visualizzato per una singola codifica (per esempio negli ideogrammi CJK). I caratteri combinati fanno sì che gli editor di testo non possano trattare ogni singolo carattere codificato come un singolo carattere che sia possibile editare.
Sebbene in generale poco utilizzata, questa codifica ha una proprietà che può renderla interessante in qualche caso: il valore numerico dei 32 bit che codificano in UTF-32 ciascun code point (punto di codifica) è esattamente il valore numerico che identifica il code point. In altri termini, se il nome del code point è U+XYZK (con XYZK cifre esadecimali) la rappresentazione esadecimale del numero binario di 32 bit che ne rappresenta la codifica UTF-32 è esattamente XYZK.