Xin lưu ý rằng tôi không hỏi tại sao. Và tôi không biết đó có phải là một vấn đề cụ thể của RCP hay không?Tại sao tôi cần phải thoát khỏi unicode trong các tệp nguồn java?
Tệp nguồn java của tôi được mã hóa bằng UTF-8.
Nếu tôi xác định các chuỗi chữ của tôi như thế này:
new Language("fr", "Français"),
new Language("zh", "中文")
Nó hoạt động như tôi mong đợi khi tôi sử dụng chuỗi trong các ứng dụng bằng cách tung ra nó từ Eclipse như một ứng dụng Eclipse:
Nhưng nếu không thành công khi tôi khởi chạy .exe được xây dựng bởi "Thuật sĩ xuất sản phẩm Eclipse":
Giải pháp tôi sử dụng là để thoát khỏi chars như thế này:
new Language("fr", "Fran\u00e7ais"), // Français
new Language("zh", "\u4e2d\u6587") // 中文
Không có vấn đề trong việc này (tất cả các chuỗi khác của tôi là trong các tập tin thuộc tính, chỉ có ngôn ngữ tên được mã hóa) nhưng tôi 'muốn hiểu.
Tôi nghĩ trình biên dịch phải chuyển đổi chuỗi chữ java khi xây dựng the bytecode. Vậy tại sao unicode thoát cần thiết? Có sai khi sử dụng các ký tự unicode cao trong các tệp nguồn java không? Điều gì xảy ra chính xác với những ký tự đó khi biên soạn và trong những gì nó khác với việc xử lý các ký tự thoát? Vấn đề chỉ liên quan đến bộ nhớ cache RCP?
Dường như Eclipse sản phẩm Export Wizard không giải thích tập tin của bạn như UTF-8. Có lẽ bạn cần chạy JVM của Eclipse với bộ mã hóa thành UTF-8 ('-Dfile.encoding = UTF8' trong' eclipse.ini')? –
Trong khi điều này không thực sự giải thích lý do tại sao nó xảy ra nó đề xuất một giải pháp thay thế và chỉ ra rằng thuật sĩ xuất khẩu vì lý do nào dường như không tôn trọng mã hóa của dự án đúng: http://stackoverflow.com/questions/6891079/eclipse- rcp-sai-encoding-khi-deploying-the-product – Jiddo
Để xác nhận lời giải thích của @Matt Ball, phù thủy tôi nghĩ là đúng, hãy thử đặt tùy chọn sau trong trình hướng dẫn: "Sử dụng các tệp lớp được biên dịch trong không gian làm việc" –