Co to jest kodowanie znaków UTF-8?

  • 6 minut czytania
  • Strony internetowe
kodowanie UTF-8

Kodowanie znaków odgrywa kluczową rolę w przetwarzaniu tekstu w systemach komputerowych. Jednym z najpopularniejszych standardów kodowania jest UTF-8, który umożliwia reprezentację znaków z różnych języków świata. Dzięki swojej uniwersalności i kompatybilności wstecznej z ASCII, UTF-8 jest szeroko stosowany w Internecie, systemach operacyjnych i bazach danych. Kodowanie to pozwala na bezproblemowe mieszanie znaków z różnych alfabetów, co ułatwia tworzenie treści wielojęzycznych. W niniejszym artykule omówimy szczegóły działania UTF-8, jego zastosowania oraz sposoby kodowania tekstu w tym standardzie.

Czym jest Unicode Transformation Format 8-bit ?

UTF-8 (ang. „Unicode Transformation Format 8-bit”) to jeden z najczęściej stosowanych systemów kodowania znaków, używany na całym świecie do reprezentacji tekstu w systemach komputerowych i w Internecie. Jest to kodowanie zmiennobajtowe, co oznacza, że różne znaki mogą być reprezentowane przez różną liczbę bajtów (od 1 do 4). UTF-8 jest kompatybilny wstecznie z ASCII, co oznacza, że znaki ASCII (czyli znaki od 0 do 127) są kodowane w taki sam sposób jak w ASCII, przy czym dodatkowe znaki spoza tego zakresu wymagają więcej bajtów do zakodowania.

Zaletą UTF-8 jest jego uniwersalność, ponieważ obsługuje pełny zestaw znaków Unicode, czyli wszystkie znaki używane na świecie, w tym również te rzadkie i historyczne. Dzięki temu możliwe jest bezproblemowe zapisanie i odczytanie tekstów w dowolnym języku bez obawy o błędne wyświetlanie znaków. Standard ten jest szeroko stosowany w systemach operacyjnych, przeglądarkach internetowych, bazach danych oraz w aplikacjach webowych.

Jedną z najważniejszych cech UTF-8 jest jego optymalizacja pod kątem tekstów łacińskich, w których większość znaków zajmuje tylko 1 bajt, co pozwala na efektywne przechowywanie i przetwarzanie danych. Natomiast znaki innych alfabetów, takich jak cyrylica, chiński, arabski czy japoński, są kodowane przy użyciu większej liczby bajtów, ale pozostają w pełni zgodne z formatem Unicode.

UTF-8 jest preferowanym kodowaniem w Internecie, ponieważ zapewnia poprawne wyświetlanie znaków niezależnie od używanego systemu operacyjnego i przeglądarki. Umożliwia on również mieszanie znaków z różnych języków w jednym dokumencie, co czyni go idealnym rozwiązaniem dla globalnych zastosowań. Współczesne technologie, takie jak HTML, XML, JSON oraz większość nowoczesnych baz danych, domyślnie korzystają z kodowania UTF-8, co zapewnia ich szeroką kompatybilność.

Dowiedz się więcej: czym jest meta charset UTF-8.

Do czego służy UTF-8?

  • Reprezentacja znaków z różnych języków świata w jednym standardzie.
  • Zapewnienie kompatybilności z ASCII.
  • Kodowanie znaków w aplikacjach internetowych i systemach operacyjnych.
  • Umożliwienie obsługi wielojęzycznych treści w dokumentach HTML, XML, JSON.
  • Poprawna wymiana danych między różnymi systemami operacyjnymi i bazami danych.

Czy UTF-8 obsługuje polskie znaki?

Tak, kodowanie UTF-8 obsługuje polskie znaki, takie jak: ą, ć, ę, ł, ń, ó, ś, ź, ż. W przeciwieństwie do starszych systemów kodowania, takich jak ISO-8859-2 (Latin-2) czy Windows-1250, UTF-8 pozwala na używanie polskich znaków w sposób jednolity i zgodny z międzynarodowymi standardami. Dzięki temu nie ma problemów z wyświetlaniem tekstów w języku polskim na różnych urządzeniach i systemach operacyjnych.

Jakie języki obsługuje UTF-8?

UTF-8 obsługuje wszystkie języki świata, ponieważ kodowanie to jest oparte na standardzie Unicode. Dzięki temu możliwe jest zapisanie znaków używanych w następujących systemach pisma:

  • Alfabety łacińskie (np. angielski, niemiecki, polski, francuski).
  • Cyrylica (np. rosyjski, ukraiński, bułgarski).
  • Alfabety azjatyckie (np. chiński, japoński, koreański).
  • Pismo arabsko-perskie.
  • Pismo greckie.
  • Pismo hebrajskie.
  • Systemy sylabiczne (np. japońska hiragana, katakana).
  • Pisma historyczne (np. hieroglify egipskie, sanskryt).

Jak zakodować tekst w UTF-8?

Aby zakodować tekst w UTF-8, można użyć różnych metod w zależności od narzędzia, którego się używa. UTF-8 jest powszechnie stosowanym standardem kodowania znaków, który obsługuje szeroki zakres znaków z różnych języków. Poniżej przedstawiamy kilka metod kodowania tekstu w UTF-8.

W edytorze tekstu

  • Otwórz plik w edytorze tekstu, np. Notepad++, Visual Studio Code, Sublime Text lub Atom.
  • Wybierz opcję „Zapisz jako” lub „Save As”.
  • W sekcji „Kodowanie” lub „Encoding” wybierz „UTF-8” lub „UTF-8 bez BOM” (zalecane dla kompatybilności z różnymi systemami).
  • Zapisz plik.

Niektóre edytory umożliwiają także zmianę kodowania już otwartego pliku. W Notepad++ można to zrobić przez menu „Kodowanie” -> „Konwertuj na UTF-8 bez BOM”.

W języku Python

W Pythonie można łatwo zapisać tekst w UTF-8 przy użyciu funkcji open. Oto przykład kodu, który tworzy plik tekstowy i zapisuje w nim treść w kodowaniu UTF-8:

with open("plik.txt", "w", encoding="utf-8") as f:
    f.write("Przykładowy tekst zawierający polskie znaki: ą, ć, ę, ł, ń, ó, ś, ź, ż")

Aby odczytać plik zakodowany w UTF-8, wystarczy użyć podobnej metody:

with open("plik.txt", "r", encoding="utf-8") as f:
    tekst = f.read()
    print(tekst)

W HTML

Dodanie poniższego meta tagu w sekcji <head> strony HTML zapewni poprawne wyświetlanie znaków UTF-8 w przeglądarce.

<meta charset="UTF-8">

Przeglądarki internetowe domyślnie rozpoznają to kodowanie, jeśli zostanie poprawnie określone w pliku HTML lub w nagłówkach HTTP.

W bazie danych MySQL

Aby zapewnić obsługę UTF-8 w bazie danych MySQL, warto stosować kodowanie utf8mb4, które obsługuje pełny zestaw znaków Unicode, w tym emoji. Oto przykład tworzenia bazy danych z poprawnym kodowaniem:

CREATE DATABASE moja_baza CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Podobnie, podczas tworzenia tabeli należy zadbać o odpowiednie kodowanie znaków:

CREATE TABLE uzytkownicy (
    id INT AUTO_INCREMENT PRIMARY KEY,
    imie VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
    email VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
);

Jeśli chcesz zmienić kodowanie w istniejącej tabeli, użyj komendy:

ALTER TABLE uzytkownicy CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

W systemie Linux

Na systemach opartych na Linuxie można sprawdzić i zmienić kodowanie plików za pomocą narzędzia iconv lub file.

# Sprawdzenie kodowania pliku
file -i plik.txt
# Konwersja pliku do UTF-8
iconv -f ISO-8859-2 -t UTF-8 plik.txt -o plik_utf8.txt

Warto upewnić się, że środowisko terminala obsługuje UTF-8. Można to sprawdzić poleceniem:

echo $LANG

Jeśli wynik nie wskazuje na UTF-8 (np. pl_PL.UTF-8), można ustawić odpowiednie kodowanie poprzez edycję pliku /etc/default/locale.

W PowerShell (Windows)

Na systemie Windows można ustawić kodowanie UTF-8 w PowerShell, używając poniższego polecenia:

[System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8

Aby zapisać plik w UTF-8 w PowerShell, można użyć polecenia:

Set-Content -Path plik.txt -Value "Przykładowy tekst w UTF-8" -Encoding utf8

< Powrót

Zapisz się do newslettera


Zadzwoń Napisz