我需要能够在Java中接收一个字符串并确定其中的所有字符是否属于指定字符集(例如ISO-8859-1)。我已经搜索了很多方法来实现这个功能(包括使用CharsetDecoder
进行尝试),但还没有找到合适的方法。
最佳方式是什么,可以检查一个字符串中的所有字符是否属于给定的字符集?
我需要能够在Java中接收一个字符串并确定其中的所有字符是否属于指定字符集(例如ISO-8859-1)。我已经搜索了很多方法来实现这个功能(包括使用CharsetDecoder
进行尝试),但还没有找到合适的方法。
最佳方式是什么,可以检查一个字符串中的所有字符是否属于给定的字符集?
在 java.nio.charset 包中的 CharsetEncoder 类提供了一个 canEncode 方法,用于测试是否支持特定字符。
Michael 基本上做了这样的事情:
Charset
.forName
(CharEncoding.ISO_8859_1
).newEncoder
().canEncode
("string")
请注意,CharEncoding.ISO_8859_1
依赖于 Apache commons,并且可能被 "ISO_8859_1" 替换。
Charset.forName(CharEncoding.ISO_8859_1).newEncoder().canEncode("string")
- Michael