Outil de Conversion UTF-8

FAQ

Qu'est-ce que UTF-8 ?

UTF-8 est un encodage de caractères à longueur variable pour Unicode. Il utilise de 1 à 4 octets pour représenter les caractères, ce qui le rend efficace pour les caractères ASCII et capable de représenter tous les caractères Unicode.

Comment cet outil convertit-il le texte en UTF-8 ?

Cet outil utilise l'encodeur intégré du navigateur (TextEncoder) pour encoder le texte en UTF-8. Chaque caractère est converti en un ou plusieurs octets selon son point de code Unicode, puis formaté sous forme de séquences d'échappement hexadécimales (par exemple, \xE4\xB8\xAD pour « 中 »).

Comment cet outil convertit-il UTF-8 en texte ?

L'outil supprime les préfixes \x de l'entrée et interprète les valeurs hexadécimales restantes comme des octets. Ces octets sont ensuite décodés en texte à l'aide du décodeur intégré du navigateur (TextDecoder), selon les règles UTF-8.

Pourquoi UTF-8 est-il si largement utilisé ?

UTF-8 est très utilisé car il est rétrocompatible avec ASCII, efficace pour le texte en anglais, et peut encoder tous les caractères Unicode. C’est l’encodage par défaut pour les pages web et de nombreux systèmes, garantissant la compatibilité entre les plateformes.

Quels sont les principes de l'encodage UTF-8 ?

L'encodage UTF-8 fonctionne en convertissant les points de code Unicode en séquences d'octets :

  • Les points de code de U+0000 à U+007F sont encodés sur un seul octet (compatible ASCII).
  • Les points de code de U+0080 à U+07FF sont encodés sur deux octets.
  • Les points de code de U+0800 à U+FFFF sont encodés sur trois octets.
  • Les points de code de U+10000 à U+10FFFF sont encodés sur quatre octets.

Chaque octet dans une séquence multioctet commence par un motif de bits spécifique indiquant son rôle, ce qui rend UTF-8 auto-synchronisé et tolérant aux erreurs.

Comment implémenter la conversion UTF-8 dans différents langages ?

Voici des exemples d'encodage de chaînes en UTF-8 et de décodage des octets UTF-8 en texte, dans différents langages de programmation :

Go

Exemple en Go : conversion UTF-8.


import "fmt"

func main() {
    text := "Hello, World!"
    // Encode string to UTF-8 bytes
    utf8Bytes := []byte(text)
    fmt.Printf("UTF-8 bytes: %x\n", utf8Bytes)

    // Decode UTF-8 bytes back to string
    decodedText := string(utf8Bytes)
    fmt.Printf("Decoded text: %s\n", decodedText)
}
      
Java

Exemple en Java : conversion UTF-8.


import java.nio.charset.StandardCharsets;

public class Utf8Example {
    public static void main(String[] args) {
        String text = "Hello, World!";
        // Encode string to UTF-8 bytes
        byte[] utf8Bytes = text.getBytes(StandardCharsets.UTF_8);
        System.out.println("UTF-8 bytes: " + java.util.Arrays.toString(utf8Bytes));

        // Decode UTF-8 bytes back to string
        String decodedText = new String(utf8Bytes, StandardCharsets.UTF_8);
        System.out.println("Decoded text: " + decodedText);
    }
}
      
Python

Exemple en Python : conversion UTF-8.


text = "Hello, World!"
# Encode string to UTF-8 bytes
utf8_bytes = text.encode("utf-8")
print(f"UTF-8 bytes: {utf8_bytes}")

# Decode UTF-8 bytes back to string
decoded_text = utf8_bytes.decode("utf-8")
print(f"Decoded text: {decoded_text}")
      
PHP

Exemple en PHP : conversion UTF-8.


<?php
$text = "Hello, World!";
// Encode string to UTF-8 bytes
$utf8Bytes = utf8_encode($text);
echo "UTF-8 bytes: " . bin2hex($utf8Bytes) . PHP_EOL;

// Decode UTF-8 bytes back to string
$decodedText = utf8_decode($utf8Bytes);
echo "Decoded text: " . $decodedText . PHP_EOL;
?>
      
JavaScript

Exemple en JavaScript : conversion UTF-8.


const text = "Hello, World!";
// Encode string to UTF-8 bytes
const encoder = new TextEncoder();
const utf8Bytes = encoder.encode(text);
console.log("UTF-8 bytes:", Array.from(utf8Bytes));

// Decode UTF-8 bytes back to string
const decoder = new TextDecoder("utf-8");
const decodedText = decoder.decode(utf8Bytes);
console.log("Decoded text:", decodedText);
      
TypeScript

Exemple en TypeScript : conversion UTF-8.


const text: string = "Hello, World!";
// Encode string to UTF-8 bytes
const encoder: TextEncoder = new TextEncoder();
const utf8Bytes: Uint8Array = encoder.encode(text);
console.log("UTF-8 bytes:", Array.from(utf8Bytes));

// Decode UTF-8 bytes back to string
const decoder: TextDecoder = new TextDecoder("utf-8");
const decodedText: string = decoder.decode(utf8Bytes);
console.log("Decoded text:", decodedText);