Java で文字列を取得し、その文字列に含まれるすべての文字が指定された文字セット (ISO-8859-1 など) に含まれているかどうかを判断できる必要があります。これを行う簡単な方法 ( をいじるなど) をかなり調べましたCharsetDecoder
が、まだ何かを見つけることができていません。
文字列を取得し、すべての文字が特定の文字セット内にあるかどうかを判断する最良の方法は何ですか?
Java で文字列を取得し、その文字列に含まれるすべての文字が指定された文字セット (ISO-8859-1 など) に含まれているかどうかを判断できる必要があります。これを行う簡単な方法 ( をいじるなど) をかなり調べましたCharsetDecoder
が、まだ何かを見つけることができていません。
文字列を取得し、すべての文字が特定の文字セット内にあるかどうかを判断する最良の方法は何ですか?
パッケージjava.nio.charsetのクラスCharsetEncoderは、特定の文字がサポートされているかどうかをテストするメソッドcanEncodeを提供します。
マイケルは基本的に次のようなことをしました:
Charset
. forName
( CharEncoding.ISO_8859_1
)。newEncoder
(). canEncode
("ストリング")
Apache commonsCharEncoding.ISO_8859_1
に依存しており、「ISO_8859_1」に置き換えられる可能性があることに注意してください。
最も簡単な方法は、対象の文字セット エンコーディングで表現できる Unicode 文字のテーブルを作成し、文字列内の各文字をテストすることだと思います。ISO-8859 ファミリの場合、テーブルは通常、1 つまたはいくつかの範囲の Unicode 文字で表すことができるため、テストが比較的簡単になります。これは多くの手作業ですが、一度だけ行う必要があります。
編集:または、文字セットが Java 実装でサポートされている場合は、Aubin の回答を使用します。:)