Kodowanie znaków w programowaniu komputerowym to metoda lub algorytm używany do znalezienia zwykle numerycznej reprezentacji znaku, glifu lub symbolu. Stosowanie kodowania znaków w komputerach jest konieczne, ponieważ informacje w pamięci komputera i na nośnikach odczytywalnych przez komputer są przechowywane jako sekwencje bitów lub liczb. Wymaga to użycia kodowania w celu przetłumaczenia znaków nienumerycznych używanych do wyświetlania lub danych wyjściowych czytelnych dla człowieka na postać, którą może manipulować komputer. W bardziej szczegółowej aplikacji dokumenty HyperText Markup Language (HTML) odczytywane przez przeglądarki internetowe mogą definiować używany typ kodowania znaków, aby poinformować przeglądarkę, którego zestawu znaków należy użyć podczas wyświetlania informacji w dokumencie. W użyciu jest kilka schematów kodowania, chociaż wiele z tych zastrzeżonych i starszych zestawów jest powoli zastępowanych przez standard kodowania Unicode®.
We wczesnych dniach komputerów, gdy ilość pamięci była ograniczona, podstawowe znaki alfabetu angielskiego — w tym interpunkcja i cyfry — były przechowywane w 7-bitowych sekwencjach, pozwalających na 128 różnych znaków. W tym oryginalnym schemacie każdy 7-bitowy bajt reprezentował jeden znak alfabetu angielskiego, kolejno ponumerowany. To kodowanie znaków było wydajne i ostatecznie zostało ustandaryzowane i używane w większości wyprodukowanych komputerów. Chociaż system kodowania ewoluował do standardu kodowania Unicode®, koncepcja pozostała taka sama. Mianowicie, każdy pojedynczy znak w języku jest bezpośrednio powiązany z pojedynczą liczbą w dużym standardowym zestawie znaków, a liczba ta jest używana przez komputer do przechowywania, przetwarzania i indeksowania znaku.
Inne rodzaje kodowania znaków zostały opracowane z różnych powodów. Niektóre, które były nastawione specjalnie na alfabet angielski i miały być używane do tekstu, mapowały swoje znaki tylko na sekwencje 7-bitowe, a następnie rozdzielały je na 8-bitowe bajty lub oktety. Spowodowało to zaoszczędzenie 1 bitu na oktet, efektywnie wykorzystując kodowanie znaków jako rodzaj kompresji. Inne schematy kodowania próbowały dostarczyć podstawowe informacje o znaku, a następnie dodatkowe znaki reprezentujące specjalne akcenty, których można było użyć podczas pisania w innym języku, chociaż zostały one w dużej mierze porzucone na rzecz prostszych metod kodowania jeden-do-jednego.
W dokumentach HTML kodowanie znaków jest mniej więcej takie samo jak szersza koncepcja, z wyjątkiem tego, że definiowane kodowanie obejmuje cały zestaw znaków. Może to być ważne nie tylko w przypadku języków obcych, ale także w przypadku dokumentów, w których używane są określone symbole związane z nauką lub matematyką, które nie występują we wszystkich zestawach znaków. Może być również przydatny do używania znaków interpunkcyjnych i innych glifów, które mogą być nieobecne lub są różnie mapowane w różnych schematach kodowania. Dokumenty, które nie definiują poprawnie niestandardowego kodowania znaków, mogą być wyświetlane nieprawidłowo lub być wypełnione bezsensownymi znakami i symbolami zastępczymi zamiast czytelnymi informacjami.