Trong game J2ME Trung Quốc, đặc biệt là các game đã được nén hoặc chỉnh sửa, khoảng trắng (dấu cách) thường không dùng ký tự ASCII 32 (0x20) thông thường mà được thay bằng các ký tự đặc biệt hoặc ký tự Trung Quốc trống (空字符) để tiết kiệm dung lượng, tránh lỗi font hoặc chống sửa.
Dưới đây là các ký tự thường dùng để thay cho dấu cách:
Mã Ký tự | Tên hoặc ghi chú
\u3000 IDEOGRAPHIC SPACE – Khoảng trắng toàn hình (full-width space)
\u00A0 NO-BREAK SPACE – Khoảng trắng không ngắt dòng
\u2002 EN SPACE – Khoảng trắng nửa chữ
\u2003 EM SPACE – Khoảng trắng đầy
\u200B ZERO WIDTH SPACE – Khoảng trắng không độ rộng
\uFEFF ZERO WIDTH NO-BREAK SPACE – BOM, nhưng đôi khi dùng như khoảng trắng.
Cách nhận biết:
- Khi mở file .txt hoặc .class bị mã hóa, bạn có thể thấy có “dấu cách” trông giống thật nhưng khi copy sang nơi khác thì không phải là 0x20.
- Dùng các công cụ như HxD, Notepad++ (chế độ UTF-8) hoặc code để so sánh mã Unicode.
Cách xử lý:
Trong code Java hoặc khi dịch game:
Tìm và thay thế các ký tự như \u3000 → " " nếu muốn dễ đọc hơn.
Dùng hàm regex để lọc ký tự “space giả”.