java中unicode显示乱码_Java 已知Java系统编码是GBK,jtextarea从一编码为Unicode的文本中读取数据,出现乱码,怎么正常显示?...
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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 改进版的CBOW模型
- 下一篇: oracle 减少回表,減少oracle