30/09/2018, 17:56

lỗi font chữ sau khi build ứng dụng

mình mới học java và mình có làm 1 ứng dụng java đơn giản, khi run trên netbean thì chạy bình thường, không bị lỗi font chữ, nhưng khi build ra thành ứng dụng .jar thì lỗi font.
ứng dụng của mình liên quan đến việc đọc ký tự từ 1 cái JTextArea các ký tự, từ tiếng việt, sau đó xuất ra file, rồi lại đọc từ file vào và hiển thị ra màn hình.mình có search trên mạng thấy:
thêm dòng:
System.setProperty(“file.encoding”,“utf-8”); vào code
hay chạy command line bằng lệnh:
java -DFile.encoding=utf8 -jar MyJar.jar
thế nhưng chả hiểu sao mình thử đều không được, hay là do mình làm sai chỗ nào?
Bạn nào biết giải đáp giúp mình với!

viết 19:58 ngày 30/09/2018

chắc là do cmd ko hỗ trợ, hay đúng hơn là Java ko gọi đúng hàm viết Unicode strings…

cái này có lẽ bó tay thôi. Đã làm GUI (đọc từ JTextArea) thì output trên GUI luôn đi, tạo 1 cái JTextArea khác rồi setText() vào

viết 19:57 ngày 30/09/2018

share code được không em, để mọi người thử chạy coi thế nào.

Nguyễn Hữu Hồng viết 20:01 ngày 30/09/2018

em sửa được rồi ạ! lúc trước em dùng cái FileReader vs BufferedReader:

FileReader = new FileReader(file);
BufferedReader br = new BufferedReader(reader);

với cả

FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);

không có cái định dạng utf8 ở đấy xong em chuyển sang:

FileInputStream fileInPutStream = new FileInputStream(file);
            Reader reader = new java.io.InputStreamReader(fileInPutStream, "utf8");
            BufferedReader br = new BufferedReader(reader);

với

FileOutputStream fileOutputStream = new FileOutputStream(file);
            Writer writer = new java.io.OutputStreamWriter(fileOutputStream, "utf8");
            BufferedWriter bw = new BufferedWriter(writer);

thì nó ok luôn.

Bài liên quan
0