2008-08-11 41 views
6

Cách tốt nhất để xác minh/kiểm tra xem chuỗi văn bản có được tuần tự hóa thành một mảng byte với một mã hóa nhất định không?Kiểm tra mã hóa tuần tự

Trong trường hợp của mình, tôi muốn xác minh rằng một cấu trúc XML được tuần tự hóa thành một mảng byte với mã hóa UTF-8 có độ dài ký tự thay đổi. Ví dụ, thủ tục xấu xí hiện tại của tôi là tiêm một ký tự được biết là yêu cầu hai byte vào cấu trúc trước khi tuần tự hóa, sau đó thay thế ký tự hai byte bằng ký tự ASCII và so sánh độ dài mảng được tuần tự hóa. Điều này sẽ sinh ra hai mảng được tuần tự hóa, trong đó mảng chứa các ký tự 2 byte phải có độ dài +1.

Plus nếu giải pháp là thanh lịch cho Java. Tôi không thể nghĩ ra một cách thanh lịch nào để tìm kiếm một chuỗi byte trong một mảng byte. (Có thể được sử dụng để tìm kiếm một chuỗi byte đã biết đại diện cho biểu diễn ký tự mong muốn trong UTF-8.)

Trả lời

2

Có lẽ bạn có thể deserialise mảng byte sử dụng mã hóa đã biết và đảm bảo rằng (a) nó không ném bất kỳ ngoại lệ nào và (b) deserialises vào chuỗi gốc. Có vẻ như từ mô tả của bạn về kịch bản, bạn có thể không có sẵn chuỗi gốc. Có thể có một cách để tạo ra nó?

0

Tốt. Bạn nói đúng, tôi không có chuỗi gốc vì tôi đang thử nghiệm một mô-đun tạo tài liệu XML dưới dạng mảng byte. Tôi không nghĩ về deserializing một String với một mã hóa dự kiến. Điều đó sẽ làm các thủ thuật.

Các vấn đề liên quan