Công cụ Chuyển đổi UTF-8 sang Hex

Câu hỏi thường gặp

Mã hóa UTF-8 là gì?

UTF-8 là một mã hóa ký tự có độ dài thay đổi cho Unicode. Nó sử dụng 1 đến 4 byte để biểu diễn các ký tự, giúp nó hiệu quả cho việc mã hóa các ký tự ASCII trong khi vẫn hỗ trợ tất cả các ký tự Unicode.

Công cụ này chuyển đổi văn bản sang UTF-8 như thế nào?

Công cụ này sử dụng TextEncoder tích hợp sẵn của trình duyệt để mã hóa văn bản thành UTF-8. Mỗi ký tự được chuyển đổi thành một hoặc nhiều byte dựa trên điểm mã Unicode của nó, sau đó được định dạng dưới dạng chuỗi thoát thập lục phân (ví dụ: \xE4\xB8\xAD biểu thị '中').

Công cụ này chuyển đổi UTF-8 sang văn bản như thế nào?

Công cụ này loại bỏ tiền tố \x khỏi đầu vào và phân tích các giá trị thập lục phân còn lại thành byte. Các byte này sau đó được giải mã thành văn bản bằng TextDecoder của trình duyệt, tái tạo lại các ký tự gốc theo quy tắc mã hóa UTF-8.

Tại sao UTF-8 được sử dụng rộng rãi?

UTF-8 được sử dụng rộng rãi vì nó tương thích ngược với ASCII, hiệu quả cho việc mã hóa văn bản tiếng Anh và có khả năng mã hóa tất cả các ký tự Unicode. Đây là mã hóa mặc định cho các trang web và nhiều hệ thống khác, đảm bảo tính nhất quán của văn bản trên các nền tảng.

Nguyên tắc mã hóa UTF-8 là gì?

Mã hóa UTF-8 hoạt động bằng cách nhóm các điểm mã Unicode và mã hóa chúng thành các chuỗi byte:

  • Các điểm mã từ U+0000 đến U+007F được mã hóa trong một byte (tương thích với ASCII).
  • Các điểm mã từ U+0080 đến U+07FF được mã hóa trong hai byte.
  • Các điểm mã từ U+0800 đến U+FFFF được mã hóa trong ba byte.
  • Các điểm mã từ U+10000 đến U+10FFFF được mã hóa trong bốn byte.

Mỗi byte trong một chuỗi nhiều byte bắt đầu bằng một mẫu bit cụ thể để chỉ ra vai trò của nó trong chuỗi, đảm bảo rằng UTF-8 tự đồng bộ hóa và có khả năng phục hồi lỗi.

Làm cách nào để triển khai chuyển đổi UTF-8 trong các ngôn ngữ lập trình khác nhau?

Dưới đây là các ví dụ về cách mã hóa một chuỗi thành byte UTF-8 và giải mã byte UTF-8 trở lại thành chuỗi trong các ngôn ngữ lập trình khác nhau:

Go

Ví dụ mã Go: Chuyển đổi 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

Ví dụ mã Java: Chuyển đổi 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

Ví dụ mã Python: Chuyển đổi 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

Ví dụ mã PHP: Chuyển đổi 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

Ví dụ mã JavaScript: Chuyển đổi 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

Ví dụ mã TypeScript: Chuyển đổi 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);