2009-03-19 41 views
7

Tôi đang sử dụng netbeans 6.1 trên 2 máy tính.hebrew xuất hiện dưới dạng dấu hỏi trong netbeans

trên một trong số họ chương trình:

public static void main(String argv[]) 
{ 
     System.out.println("שלום"); 
} 

in bình thường, và trên dấu hỏi khác.
sự khác biệt giữa 2 môi trường là gì?

chỉnh sửa: trên cả hai máy tính Control Panel \ Regional and Language Options \ nâng cao được thiết lập để Hebrew
chỉnh sửa: Cảm ơn bạn Michael Burr, nhưng giá trị của mã hóa đã là UTF-8. Có lẽ điều này với JVM?
chỉnh sửa: Tôi đã cài đặt Eclipse và sự cố cũng xảy ra ở đó. Tôi cũng đã thử đọc hebrew từ một tệp có cùng kết quả.
chỉnh sửa: System.getProperty("file.encoding"); lợi nhuận "Cp1252" tôi đã cố gắng System.setProperty("file.encoding","UTF-8") nhưng dấu hỏi vẫn còn.

Cảm ơn,
Ido

+0

Bạn đã bao giờ tìm thấy giải pháp cho điều này chưa? Không có giải pháp nào dưới đây có hiệu quả đối với tôi. – theyuv

Trả lời

0

Thông thường đó là mã hóa mặc định trên:

Control Panel \ Regional and Language Options \ nâng cao
(Chọn Hebrew trên combo)

Bạn sẽ phải khởi động lại sau khi thay đổi cài đặt này.

1

Có phải tiếng Do Thái được cài đặt theo mặc định không? Có thể là gói ngôn ngữ chưa được cài đặt?

Bảng điều khiển> Tùy chọn ngôn ngữ và khu vực> Ngôn ngữ. Chọn tùy chọn 'Cài đặt tệp cho tập lệnh phức tạp và ngôn ngữ từ phải sang trái (bao gồm cả tiếng Thái)'. Điều này sẽ cài đặt hỗ trợ cho tiếng Do Thái. Có thể bạn sẽ cần một đĩa hệ điều hành.

+0

bạn có nghĩa là gói ngôn ngữ Windows? – iddober

+0

có. Tôi không chắc chắn về tiếng Hebrew, nhưng chúng tôi phải cài đặt một gói ngôn ngữ riêng cho tiếng Nhật. chúng tôi đã thấy '?' ở một số nơi và 'hộp' ở những nơi khác. –

+0

'?' có nghĩa là mã hóa được thiết lập sai, các hộp có nghĩa là phông chữ không hỗ trợ các ký tự. –

3

Đảm bảo rằng NetBeans được thiết lập với mã hóa hỗ trợ các ký tự tiếng Do Thái. Từ NetBeans Wiki:

Để thay đổi ngôn ngữ mã hóa cho một dự án:

  1. Kích chuột phải vào một nút dự án trong cửa sổ dự án và chọn Properties.
  2. Trong Nguồn, chọn giá trị mã hóa từ trường thả xuống Mã hóa.
1

Bạn đang chạy chương trình chính xác như thế nào? Nó in đầu ra ở đâu? Nó có thể đơn giản như netbeans hoặc giao diện điều khiển bằng cách sử dụng các phông chữ khác nhau, một trong số đó không bao gồm các ký tự tiếng Do Thái.

Để loại bỏ các sự cố mã hóa trong khi biên soạn, hãy thử thay thế các ký tự Hebrew bằng unicode escape sequences của chúng và xem kết quả có khác nhau không.

+0

một điều rất lạ đã xảy ra, sau khi tôi thay đổi tùy chọn máy ảo được thêm: "-Dfile.encoding = UTF-8" Nó hoạt động. nhưng sau khi tôi khởi động lại máy tính, tôi đã nhận được × © × × • Ö¹ × ˜ thay vì tiếng Do Thái, ngay cả khi tôi sử dụng chuỗi thoát Unicode. – iddober

+0

Tùy chọn VM đó sẽ không thể có bất kỳ hiệu ứng nào sau khi khởi động lại, nhưng có thể bạn cũng không sử dụng cài đặt miền địa phương và chỉ có hiệu lực sau khi khởi động lại? –

2

Bạn không thể đặt thuộc tính "file.encoding" bằng System.setProperty(); nó phải được đặt trên dòng lệnh khi JVM được bắt đầu bằng -Dfile.encoding=UTF-8. Giá trị của thuộc tính này được đọc trong quá trình khởi tạo JVM và được lưu trong bộ nhớ cache. Khi phương thức main của bạn được gọi, giá trị đã được lưu vào bộ nhớ cache và các thay đổi đối với thuộc tính sẽ bị bỏ qua.

+0

Tuyệt vời, vậy làm cách nào để thay đổi NetMeans JVM sử dụng? – iddober

1

Tôi nghĩ rằng tôi đã hiểu lầm vấn đề của bạn (tôi nghĩ rằng các ký tự không được hiển thị trong trình soạn thảo NetBeans đúng cách). Các bước chính xác để giải quyết vấn đề của bạn có thể phụ thuộc vào phiên bản hệ điều hành bạn đang chạy. Win2K, WInXP, và Vista tất cả đều có hộp thoại hơi khác nhau và từ ngữ không may.

Hãy xem trang trợ giúp này cho JVM:

Nghe có vẻ như bạn đã cấu hình hệ thống như nó phải được, nhưng ma quỷ là trong các chi tiết - có một số cài đặt 'locale' khác nhau trên một hệ thống có thể ảnh hưởng đến điều này (và cho tất cả tôi biết JVM có thể tự mình ném một hoặc hai).

0

gì giúp tôi là thế này (trên Win7): enter image description here

0

Không ai trả lời từ trên không hoạt động.

Tôi đã dành khoảng một giờ, nhưng đã tìm ra, rằng vấn đề không nằm trong mã hóa chuỗi, nhưng trong mã hóa mặc định, được sử dụng bởi IDE từ khi khởi động.

Vì vậy, để nhận biểu tượng tiếng Do Thái, tiếng Ả Rập, tiếng Nga, vv trong kết quả đầu ra của bàn điều khiển Netbeans, bạn cần phải sửa đổi netbeans.conf.

Tìm kiếm các netbeans_default_options chính và thêm -J-Dfile.encoding = UTF-8 vào dấu ngoặc kép.

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