2014-04-30 16 views
7

Tôi đang sử dụng Java, Eclipse và Ant trong dự án của mình. Tôi đã có một số mã Java mà tôi cần phải chỉnh sửa và thêm một số ký tự UTF-8 trong đó. Trước đây, tệp build.xml của tôi có: Và nó hoạt động tốt. Bây giờ sau khi thêm các ký tự UTF-8 khi tôi cố gắng chạy, nó ném "lỗi: ký tự không thể điều chỉnh để mã hóa Cp1252"Java, lỗi Ant: ký tự không thể điều chỉnh để mã hóa Cp1252

Có thể bất cứ ai vui lòng cho tôi biết sửa lỗi là gì? Tôi đã thử thay đổi mã hóa thành UTF-8 và Cp1252 trong xml nhưng không có may mắn.

Tôi đang sử dụng JRE7, Eclipse Kepler và Ant 4.11.

+1

Sự cố phải được giải quyết đồng thời ở bốn địa điểm: http://stackoverflow.com/a/34225997/715269 – Gangnus

+0

Tôi gặp sự cố tương tự. Không có giải pháp nào dưới đây hoạt động. Tôi tạo ra một tập tin mới với mã hóa quyền và sau đó sao chép và dán nội dung của lớp (.java). Nó làm việc cho tôi. Trước đó, ký tự không xác định vẫn giữ nguyên bản thân khi tôi chạy kiến, sự kiện khi tôi xóa nó một cách rõ ràng và lưu tệp. Lạ phải không? – 1vand1ng0

Trả lời

11

Điều này có thể phức tạp khi thay đổi mã hóa "được quảng cáo" không bù đắp cho thực tế là có các byte trong tệp không thể hiểu được bằng cách sử dụng cách diễn giải UTF-8. Trong Ant, bạn cần cập nhật tác vụ javac để thêm mã hóa như, <javac ... encoding="utf-8">

Đảm bảo rằng mã hóa tệp trong Eclipse cũng là UTF-8 vì một số ký tự cp1252 không ánh xạ trực tiếp vào UTF-8. Có thể bạn sẽ muốn duy trì toàn bộ dự án của mình bằng một mã hóa đơn. Nếu không trình biên dịch sẽ nhìn thấy các mã hóa khác nhau khi nó chỉ mong đợi một.

+0

Cách: Đảm bảo rằng mã hóa tệp trong Eclipse cũng là UTF-8? –

3

Bạn có thể cố gắng để thiết lập các biến môi trường được gọi là ANT_OPTS (hoặc JAVA_TOOL_OPTIONS) để -Dfile.encoding = UTF8

1

Đến tab chung của cấu hình/DEBUG RUN trong mã hóa thay đổi nhật thực để UTF8.

Change encoding

2

Có vấn đề tương tự trong một trong các dự án của tôi. Một số tệp của tôi có các ký tự UTF-8 và do mã hóa mặc định nhật thực - cp1252, xây dựng không thành công với lỗi này.

Để giải quyết vấn đề này, hãy làm theo các bước dưới đây -

  1. Thay đổi mã hóa ở cấp độ dự án thực sang UTF-8 (các thuộc tính dự án -> "mã hóa tập tin văn bản" -> chọn "Khác" tùy chọn -> chọn "UTF-8" từ trình đơn thả xuống)
  2. Thêm mã hóa thuộc tính cho nhiệm vụ javac trong kiến ​​xây dựng kịch bản có giá trị "UTF-8"

Đặt loại mã hóa theo các ký tự đặc biệt được sử dụng trong mã của bạn /các tập tin.

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