2015-06-14 21 views
7

Tôi đang đọc tệp xml chứa văn bản tiếng Đức, tiếng Pháp, tiếng Tây Ban Nha, tiếng Anh và tiếng Ba Lan.Hiển thị (đánh bóng) các ký tự đúng cách

Để xử lý các chữ đánh bóng (mà gây ra những rắc rối nhất) tôi đã cố gắng để làm điều đó như thế này:

File file = new File(path); 
InputStream is = new FileInputStream(file); 
Reader reader = new InputStreamReader(is, charset); 

InputSource src = new InputSource(reader); 
src.setEncoding(charset.name()); 

SAXParserFactory factory = SAXParserFactory.newInstance(); 
SAXParser saxParser = factory.newSAXParser(); 

saxParser.parse(src, handler); 

Vấn đề tôi gặp phải là không ai trong số các bảng mã mặc định hiển thị dòng chữ đúng. Một số có dấu hỏi trong đó một số có một sự kết hợp của các ký tự khác trong nó, ví dụ: AO ..

Để phá vỡ nó một chút xuống tôi đã viết đoạn khác để kiểm tra mà charset hoạt động:

public static void main(String[] args){ 
     Charset charset = StandardCharsets.UTF_8; 
     String chars = "śłuna długie"; 
     System.out.println(new String(chars.getBytes(charset), charset)); 
} 

Một lần nữa kiểm tra mỗi một đơn nhưng không làm việc .. Tôi hy vọng bạn đã có một ý tưởng.

+3

Trong đoạn mã đầu tiên của bạn, bạn không xuất ra bất kỳ thứ gì nên khó có thể biết được điều gì đang xảy ra. Đoạn mã thứ hai hoạt động, 'śłuna długie' được sửa lại trên bảng điều khiển. Bạn sử dụng giao diện điều khiển nào? * Ở đâu * bạn cố gắng in văn bản này? Thiết bị đầu ra có hỗ trợ các ký tự bạn muốn in không? –

+0

Rất khó để cung cấp đúng mã của trình phân tích cú pháp vì có quá nhiều phần quan trọng của nó .. Ok, vậy vấn đề có thể là bàn điều khiển của tôi .. đã không nghĩ đến điều đó. Bàn điều khiển mặc định của Intellij IDEA – codewing

+0

của tôi đã thay đổi dự án và mã hóa ide thành utf 8 và nó hoạt động .. cảm ơn bạn thân – codewing

Trả lời

0

Giải pháp của tôi: Thay đổi mã hóa của ide của bạn

tôi đã sử dụng mã hóa mặc định của ide của tôi (IntelliJ) mà là "cửa sổ-1252", do thực tế mà tôi đang sử dụng Windows trên máy tính này.

Vì vậy, tôi đã thay đổi nó thành UTF-8 và mã kiểm tra ngắn làm việc tốt cho tôi.

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