自動檢測java中的字符編碼(java判斷文件字符集編碼)

本文目錄一覽:

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-hk/n/128740.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
THXOG的頭像THXOG
上一篇 2024-10-03 23:25
下一篇 2024-10-03 23:25

相關推薦

發表回復

登錄後才能評論