本文目錄一覽:
java中怎麼判斷一個字元串的編碼?
明確告訴你,沒有辦法,你必須先知道編碼,才能把byte數組轉成字元,如果已經是java的String那麼只有unicode編碼一種。
java 判斷字元串什麼編碼類型
如果是Java的String對象的話,則一定是Unicode的,這個沒有為什麼,Java就是這麼定的。
我猜你的問題應該是如何判斷一段位元組流是什麼編碼類型,對嗎?比如一個文件,或是網路上面取下來的一段Byte數組,你需要用一個合適的編碼來解析成字元串。
這個讓你失望了,沒有一個文檔化的,確定的方法來判斷,只能用測試的方法,這個方法也只是猜測,不能百分百的確定,方法如下:
用常見的編碼方式對位元組流進行解碼,比如Unicode,UTF8, UTF8 without BOM, UTF16, ANSI等等。
對解析的結果進行判斷,是不是一個合理的可列印字元,可列印字元最多的解碼方式就是最可能的編碼了。
如何判斷可列印字元?流程如下:把解析好的字元串按照字元進行遍歷,把每一個字元轉化成Unicode編碼,看看這些編碼是不是Unicode的支持範圍極客。
如果發現有種編碼方式都是可列印字元,那麼再使用本步驟:對字元串進行分詞,分詞這個在此不作贅述,你自己再研究一下。分詞效果好的就是最可能的編碼了。(不過通常到第三步就能搞定了,第四部絕大部分用不著)
如何查找默認的字符集/編碼在Java中
1, Java代碼直接設置
System.out.println(System.getProperty(“file.encoding”));
或
System.out.println(Charset.defaultCharset());
2,eclipse裡面選中工程-properties-Resource:text file encoding 改成你的原文件編碼格式即可;
3,一般配置jdbc連接字元串的時候可以指定字元編碼集,指定成和資料庫的編碼一致即可,這樣用jdbc讀出來的數據就是解碼後的正常的數據。當然,不同的資料庫產品具體看怎麼辦。
原創文章,作者:THXOG,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/128740.html