2010-09-24 27 views
5

Tôi đang phân tích cú pháp RTF 1.5+ tệp được tạo bởi Word 2003+ có thể có nội dung từ các ngôn ngữ khác. Nội dung này thường được mã hóa dưới dạng hex literals (\ 'xx). Tôi muốn chuyển đổi các chữ này thành các giá trị unicode.Cách khám phá những gì mã để sử dụng khi chuyển đổi RTF hex literals sang Unicode

Tôi biết trang mã của tài liệu của mình bằng cách tìm kiếm ansicpg (\ ansi \ ansicpg1252).

Khi tôi sử dụng mã ansicpg để giải mã thành Unicode, nhiều ngôn ngữ (như tiếng Pháp) dường như chuyển đổi sang giá trị char Unicode mà tôi mong đợi.

Tuy nhiên, khi tôi thấy văn bản tiếng Nga (như bên dưới), mã 1252 giải mã nội dung thành tính năng khó hiểu.

\ f277 \ lang1049 \ langfe1033 \ langnp1049 \ insrsid5989826 \ charrsid6817286 \ 'd1 \' f2 \ 'f0 \' e0 \ 'ed \' e8 \ 'f6 \' fb \ 'e1 \' e5 \ 'e7 \ 'ed \' e0 \ 'e7 \' e2 \ 'e0 \' ed \ 'e8 \' ff. \ 'dd \' f2 \ 'e0 \' f1 \ 'f2 \' f0 \ 'e0 \' ed \ 'e8 \' f6 \ 'e0 \' ed \ 'e5 \' e4 \ 'ee \' eb \ 'e6 \' ed \ 'e0 \' ee \ 'f2 \' ee \ 'e1 \' f0 \ 'e0 \' e6 \ 'e0 \' f2 \ 'fc \' f1 \ 'ff \' e2 \ ' f2 \ 'e0 \' e1 \ 'eb \' e8 \ 'f6 \' e5 \ 'e2 \' f1 \ 'ee \' e4 \ 'e5 \' f0 \ 'e6 \' e0 \ 'ed \' e8 \ 'e8.

Tôi giả định rằng lang1049, langfe1033, langnp1049 sẽ cung cấp cho tôi manh mối để tôi có thể chọn một trang khác nhau (không mặc định) cho văn bản mà chúng tham chiếu? Nếu vậy, tôi có thể tìm thông tin giải thích cách ánh xạ mã lang * vào một trang mã? Hoặc tôi có nên tìm kiếm một số lệnh/chỉ thị RTF khác để cung cấp cho tôi thông tin tôi đang tìm không? (Hoặc tôi phải sử dụng \ f277 làm tham chiếu phông chữ và xem nó có một trang mã được liên kết không?)

Trả lời

2

\lang thực sự chỉ đánh dấu văn bản cụ thể bằng ngôn ngữ cụ thể và không ảnh hưởng đến trang mã nào sẽ được sử dụng cho các lối thoát cũ không phải là Unicode \'.

Đưa một \ansicpg thẻ trong tiêu đề có lẽ nên làm điều đó, nhưng dường như bị bỏ qua bởi Word (cho cả hai byte thô và \' thoát.

Hoặc tôi phải sử dụng \ f277 như một tài liệu tham khảo phông chữ và thấy nếu nó có một bảng mã liên quan?

có vẻ như vậy. thay đổi \fcharset của phông chữ được gán cho một căng cụ thể của văn bản là cách duy nhất tôi có thể nhận được Word để thay đổi cách đối xử với các byte, dù sao. các mã trong mã thông báo này (xem ví dụ: here cho danh sách) là, trầm trọng hơn, khác với ID ngôn ngữ hoặc số trang mã.

+0

Cảm ơn bạn Bobince - đó chính là mẹo tôi cần. Bạn nói đúng, toàn bộ quá trình là khó xử, phức tạp và trầm trọng hơn. – Malcolm

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