2012-06-08 31 views
5
StringBuffer contents=new StringBuffer(); 
BufferedReader input = new BufferedReader(new FileReader("/home/xyz/abc.txt")); 
String line = null; //not declared within while loop 
while ((line = input.readLine()) != null){ 
    contents.append(line); 
} 
System.out.println(contents.toString()); 

file abc.txt chứahiển thị Tiếng Hin-ddi ngôn ngữ trong giao diện điều khiển sử dụng Java

\u0905\u092d\u0940 \u0938\u092e\u092f \u0939\u0948 \u091c\u0928\u0924\u093e \u091c\u094b \u091a\u093e\u0939\u0924\u0940 \u0939\u0948 \u092 

Tôi muốn dispaly bằng ngôn ngữ Tiếng Hin-ddi trong giao diện điều khiển sử dụng Java.

nếu tôi chỉ đơn giản là in như Chuỗi này str = "\ u0905 \ u092d \ u0940 \ u0938 \ u092e \ u092f \ u0939 \ u0948 \ u091c \ u0928 \ u0924 \ u093e \ u091c \ u094b \ u091a \ u093e \ u0939 \ u0924 \ u0940 \ u0939 \ u0948 \ u092 ";

System.out.println (str);

thì nó hoạt động tốt nhưng khi tôi cố đọc từ một tệp thì nó không hoạt động.

giúp tôi.

+5

một là gì "giao diện điều khiển của Java"? – missingfaktor

+0

@missingfaktor: tôi nghĩ rằng anh ấy chỉ có nghĩa là giao diện điều khiển anh ấy đang sử dụng để chạy chương trình của anh ấy (anh ấy không sử dụng bất kỳ IDE nào). Và anh ta có lẽ đang ở trên cửa sổ !! – WickeD

+0

Mở tệp trong trình duyệt và kiểm tra xem mã hóa của bạn có chính xác không? Có lẽ Bàn điều khiển Java không phải là UTF có khả năng. –

Trả lời

6

Sử dụng Apache Commons Lang.

import org.apache.commons.lang3.StringEscapeUtils; 

// open the file as ASCII, read it into a string, then 
String escapedStr; // = "\u0905\u092d\u0940 \u0938\u092e\u092f \u0939\u0948 ..." 
// (to include such a string in a Java program you would have to double each \) 

String hindiStr = StringEscapeUtils.unescapeJava(escapedStr); 

System.out.println(hindiStr); 

(Hãy chắc chắn rằng giao diện điều khiển của bạn được thiết lập để hiển thị Tiếng Hin-ddi (phông chữ đúng, vv) và mã hóa của giao diện điều khiển phù hợp với mã hóa Java của bạn. Các mã Java trên chỉ là xương trần.)

+0

nhưng khi tôi chèn vào cơ sở dữ liệu nó chỉ chèn vào như ??? ??? ????????? nó không hiển thị font tiếng Hin-ddi tôi đã thay đổi bộ mã utf-8. –

5

Bạn nên lưu trữ nội dung trong tệp dưới dạng UTF-8 ký tự Hindi được mã hóa. Ví dụ, trong trường hợp của bạn, nó sẽ là अभी समय है जनता जो चाहती है. Đó là, thay vì lưu thoát unicode, trực tiếp lưu các ký tự tiếng Hin-ddi thô. Sau đó bạn có thể đọc như bình thường.

Bạn chỉ cần đảm bảo rằng trình chỉnh sửa bạn sử dụng lưu nó bằng cách sử dụng mã hóa UTF-8. Xem Spanish language chars are not displayed properly?

Nếu không, bạn sẽ phải tạo tệp là .properties và đọc bằng cách sử dụng java.util.Properties vì nó cung cấp hỗ trợ unicode uniccaping vốn có.

Cũng đọc Reading unicode character in java

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