日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

java中unicode显示乱码_Java 已知Java系统编码是GBK,jtextarea从一编码为Unicode的文本中读取数据,出现乱码,怎么正常显示?...

發(fā)布時間:2025/3/12 windows 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中unicode显示乱码_Java 已知Java系统编码是GBK,jtextarea从一编码为Unicode的文本中读取数据,出现乱码,怎么正常显示?... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Java 已知Java系統(tǒng)編碼是GBK,jtextarea從一編碼為Unicode的文本中讀取數(shù)據(jù),出現(xiàn)亂碼,怎么正常顯示?

關(guān)注:159??答案:2??mip版

解決時間 2021-02-03 12:45

提問者鉨瞞著所囿亾,愛著誰

2021-02-02 16:35

我覺得jtextarea中讀取Unicode文本是先以Unicode編碼,再以GBK解碼,

而要想正常顯示,應(yīng)該再先以GBK編碼,再以Unicode解碼。不曉得對不對?

String codearray1=System.getProperty("file.encoding"); // Java系統(tǒng)編碼

try{

String codetype=codeString(filePath); //檢測獲得原文本編碼 filePath為文件路徑

codearray1=codestr.getBytes(defaultcode); //以系統(tǒng)編碼編碼

ta.setText(new String(codearray1,codetype)); //以原文本編碼解碼

}catch(Exception e1){}

------------------------------------------------------------------- 網(wǎng)上的方法

private String codeString(String filePath) throws Exception{

BufferedInputStream bin = new BufferedInputStream(

new FileInputStream(filePath));

int p = (bin.read() << 8) + bin.read();

codetype = null;

switch (p) {

case 0xefbb:

codetype = "UTF-8";

break;

case 0xfffe:

codetype = "Unicode";

break;

case 0xfeff:

codetype = "UTF-16BE";

break;

case 0x5c75:

codetype = "ANSI|ASCII" ;

break;

default:

codetype = "GBK";

}

return codetype;

}

但仍然亂碼:

操作前:

操作后:

按照“還是正能量”的方法,后面亂碼了。。

我把code直接定為了Unicode,用的也是InputStreamReader(FileInputStream fis,String code)這個函數(shù)

-----------------------------------------------------------------------以下是代碼

-------------------------------------------------------------------------實(shí)際效果

前面是可以了,但是后面還有很多方格。。。這要怎么做,不會要建一個方法,去掉后面的方格吧?但是如果編碼對了,就應(yīng)該不會有亂碼了。。

要打開的文件確實(shí)是Unicode編碼的,我也試了其他編碼,

對 InputStreamReader bufr=new InputStreamReader(fis,"Unicode");

若將“Unicode”改為"UTF-8"、 "UTF-16BE" 、"ASCII" 、 "GBK"

前面又亂了,反倒亂碼更嚴(yán)重。

改為其他編碼后效果:

求大神解答。。謝謝~~

最佳答案

二級知識專家轉(zhuǎn)角離身

2021-02-02 17:55

不用那么麻煩,直接用InputStreamReader(FileInputStream fis,String code)這個函數(shù)來讀取文本就可以了,code就是這個文本的編碼

全部回答

1樓烈酒℃灼言EL

2021-02-02 19:01

用String類的一個構(gòu)造函數(shù), 它可以轉(zhuǎn)換編碼!

編碼為Unicode的文本中直接給String

再看看別人怎么說的。

我要舉報

如以上問答內(nèi)容為低俗/色情/暴力/不良/侵權(quán)的信息,可以點(diǎn)下面鏈接進(jìn)行舉報,我們會做出相應(yīng)處理,感謝你的支持!

→點(diǎn)此我要舉報以上信息!←

推薦資訊

大家都在看

總結(jié)

以上是生活随笔為你收集整理的java中unicode显示乱码_Java 已知Java系统编码是GBK,jtextarea从一编码为Unicode的文本中读取数据,出现乱码,怎么正常显示?...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。