簡體   English   中英

確定字符串中的字符是否都是特定字符集

[英]Determine if characters in a string are all of a specific character set

我需要能夠在Java中獲取一個字符串,並確定其中包含的所有字符是否都在指定的字符集中(例如ISO-8859-1)。 我已經四處尋找一個簡單的方法來做這個(包括玩CharsetDecoder ),但還沒有找到一些東西。

獲取字符串並確定所有字符是否在給定字符集中的最佳方法是什么?

java.nio.charset中的CharsetEncoder提供了一個方法canEncode來測試是否支持特定字符。

邁克爾基本上做了這樣的事:

Charset forNameCharEncoding.ISO_8859_1 )。 newEncoder ()。 canEncode (“string”)

請注意, CharEncoding.ISO_8859_1依賴於Apache commons ,可能會被“ISO_8859_1”取代。

我認為最簡單的方法是創建一個表,其中Unicode字符可以在目標字符集編碼中表示,然后測試字符串中的每個字符。 對於ISO-8859系列,該表通常可以由一個或幾個Unicode字符范圍表示,使測試相對容易。 這需要很多手工,但只需要完成一次。

編輯:或者如果Java實現支持charset,請使用Aubin的答案 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM