UTF-8 変換ツール

よくある質問

UTF-8 とは何ですか?

UTF-8 は Unicode 用の可変長文字エンコーディングです。1〜4 バイトを使って文字を表現するため、ASCII 文字のエンコードに効率的でありながら、すべての Unicode 文字に対応しています。

このツールはどのようにテキストを UTF-8 に変換しますか?

このツールは、ブラウザに組み込まれている TextEncoder を使ってテキストを UTF-8 にエンコードします。各文字は Unicode のコードポイントに基づいて 1 つ以上のバイトに変換され、その後、16 進数のエスケープシーケンス(例:\xE4\xB8\xAD は「中」を表す)にフォーマットされます。

このツールはどのように UTF-8 をテキストに変換しますか?

このツールは、入力から \x プレフィックスを削除し、残りの 16 進数値をバイトとして解析します。これらのバイトは、ブラウザの TextDecoder を使用してテキストにデコードされ、UTF-8 のエンコード規則に基づいて元の文字が再構築されます。

なぜ UTF-8 は広く使われているのですか?

UTF-8 は ASCII との後方互換性があり、英語テキストのエンコードに効率的で、すべての Unicode 文字をサポートしているため広く使われています。ウェブページや多くのシステムのデフォルトエンコーディングであり、異なるプラットフォーム間でのテキストの一貫性を保証します。

UTF-8 エンコーディングの原理は何ですか?

UTF-8 エンコーディングは、Unicode のコードポイントをバイト列に変換することで機能します:

  • コードポイント U+0000~U+007F は 1 バイトでエンコードされます(ASCII と互換)。
  • コードポイント U+0080~U+07FF は 2 バイトでエンコードされます。
  • コードポイント U+0800~U+FFFF は 3 バイトでエンコードされます。
  • コードポイント U+10000~U+10FFFF は 4 バイトでエンコードされます。

複数バイトからなるシーケンスでは、各バイトはシーケンス内での役割を示す特定のビットパターンで始まり、UTF-8 は自己同期性とエラー耐性を持ちます。

さまざまなプログラミング言語で UTF-8 変換を実装するには?

以下は、さまざまなプログラミング言語で文字列を UTF-8 バイト列にエンコードしたり、UTF-8 バイト列を文字列にデコードしたりする例です:

Go

Go のサンプルコード: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

Java のサンプルコード: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

Python のサンプルコード: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

PHP のサンプルコード: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

JavaScript のサンプルコード: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

TypeScript のサンプルコード: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);