Công cụ escape Unicode

Dán văn bản và các escape hiện ngay — hoặc dán \u4F60 để lấy lại ký tự. Không cần nhấn nút, không tải lên gì.

Cách sử dụng

  1. Chọn Escape hoặc Bỏ escape — ô nhập giữ nguyên, nên bạn có thể xem cùng một văn bản từ hai phía mà không phải nhập lại.
  2. Escape: nhập hoặc dán văn bản, escape hiện ngay. Chọn cú pháp mà ngôn ngữ đích dùng: \uXXXX (Java, JSON, .properties — ký tự trên BMP thành cặp surrogate UTF-16), \u{X} (JavaScript ES6, Rust, Swift, Ruby, PHP), \UXXXXXXXX (Python, C, Go, C#) hoặc U+XXXX (ký hiệu chuẩn của Unicode).
  3. Chọn phạm vi: “Chỉ ký tự ngoài ASCII” (mặc định) escape mọi thứ trên U+007F và để nguyên ASCII, dấu cách, xuống dòng; “Mọi ký tự” escape mọi code point, nên đầu ra thuần ASCII.
  4. Bỏ escape: dán văn bản chứa escape để lấy lại ký tự. Dòng phía trên kết quả cho biết đã giải mã bao nhiêu ký tự và, nếu một đoạn không đọc được, đó là đoạn nào và ở đâu.

Ví dụ

Đầu vào

Café "naïve" 😀

Đã escape

Caf\u00E9 "na\u00EFve" \uD83D\uDE00

“é” không có dạng ASCII, nên thành \u00E9. “😀” là U+1F600, trên BMP, nên cú pháp \uXXXX ghi thành cặp surrogate \uD83D\uDE00. Chuyển sang \u{X} thì văn bản đó cho Caf\u{E9} "na\u{EF}ve" \u{1F600}; \UXXXXXXXX cho …\U0001F600; U+XXXX cho CafU+00E9 "naU+00EF ve" U+1F600 — dấu cách đôi sau é là do ký tự phân cách cộng với dấu cách vốn có trong văn bản. Mọi kết quả đó dán ngược vào Bỏ escape đều trả về nguyên vẹn.

Quy tắc, giới hạn và các vấn đề đã biết

  • Chỉ nhận bốn cú pháp: \uXXXX (đúng 4 chữ số hex), \u{X} (1–6 chữ số), \UXXXXXXXX (đúng 8 chữ số) và U+XXXX (1–6 chữ số, U+ viết hoa). %uXXXX, \x{X}, CSS \X và \N{NAME} không được hỗ trợ; tham chiếu HTML như 你 thuộc công cụ thực thể HTML.
  • \uXXXX cố định 4 chữ số: \u12 và \u12345 không được đọc là \uXXXX — \u12345 giải mã thành U+1234 rồi đến ký tự “5”. Hãy viết \u{…} khi cần 1–6 chữ số.
  • \uXXXX không có ranh giới ký tự: \u4F60abc giải mã thành 你abc, và U+4F601 là code point U+4F601 (5 chữ số, hợp lệ), không phải U+4F60 rồi đến “1”.
  • Trong U+XXXX, một dấu cách sau code point là ký tự phân cách, không phải nội dung: U+4F60 hello giải mã thành 你hello. Công cụ này ghi dấu cách sau mỗi token U+ (trừ ở cuối cùng), nên đầu ra của nó tự khứ hồi được; token viết tay không có dấu cách sẽ dính vào chữ số hex phía sau và bị tính là không nhận dạng.
  • Cặp surrogate chỉ xuất hiện trong cú pháp \uXXXX, vì đó là biểu diễn của Java/JSON; \u{1F600}, \U0001F600 và U+1F600 ghi thẳng code point. Surrogate cao không có surrogate thấp theo sau được giữ nguyên và tính là không nhận dạng — không bao giờ thay bằng “�”.
  • Code point trên U+10FFFF và chính dải surrogate bị từ chối cùng cách: giữ nguyên như đã viết và đếm, không lặng lẽ thay thế.
  • Phạm vi “Chỉ ký tự ngoài ASCII” không escape dấu gạch chéo ngược nguyên văn: nếu văn bản đã có \u4f60, Bỏ escape sẽ đọc đó là escape. Sự mơ hồ này vốn có của phạm vi — hãy chọn “Mọi ký tự” khi dấu gạch chéo ngược quan trọng.
  • Giải mã chỉ một lượt: \u005Cu4F60 thành văn bản \u4F60, không thành 你. Dán lại nếu thực sự cần hai lớp.
  • Ký tự điều khiển hợp lệ được giải mã thành chính nó: \u0000 cho U+0000 (vô hình nhưng không phải lỗi), nên đầu ra có thể chứa ký tự bạn không nhìn thấy.
  • Escape chuỗi như \n và \t được để là văn bản thường và không được đếm; chuỗi JSON đầy đủ là vấn đề riêng. Mã hóa URL, HTML và Base64 cũng là các công cụ riêng.
  • Tối đa 100.000 ký tự; vượt quá sẽ báo lỗi thay vì kết quả bị cắt. Trên 20.000 ký tự, kết quả cập nhật khoảng 0,6 giây sau khi bạn ngừng gõ.
  • Không tải tệp lên, không lịch sử và không liên kết chia sẻ chứa dữ liệu của bạn: mọi thứ chạy trong trình duyệt và văn bản không bao giờ rời khỏi trang.

Những gì người dùng thường cần tiếp theo khi văn bản đã được escape hoặc bỏ escape.