タイトルのとおり、Java で ASCII 文字列を UTF-8 文字列に変換するにはどうすればよいですか?
ありがとう!
編集:私の状況は、実際には中国語の文字列を読み込んでいて、それを出力するとすべて意味不明です。問題はエンコーディングにあるのではないかと思いました。では、文字列を意味不明なものから適切な言語セット文字に適切に変換するにはどうすればよいでしょうか?
Java には「ASCII 文字列」や「UTF-8 文字列」などというものはありません。オブジェクトを取得した時点ではString
、それは単なる UTF-16 コード単位のシーケンスです。バイトを解釈するために ASCII または UTF-8 を使用してバイト配列からデコードされたものかどうかの記録はありません。
また、UTF-8 は ASCII と下位互換性があることに注意してください。ASCII でエンコードされたテキストを表す有効なバイト シーケンスがある場合、それは UTF-8 で同じテキストを表すために使用されるバイト シーケンスと同じです。 .
Java には ASCII 文字列や UTF-8 文字列などはありません。ASCII と UTF-8 はエンコーディング (バイト配列) です。
文字列の ASCII エンコーディングから文字列の UTF-8 エンコーディングに変換する必要はありません。有効な ASCII は、同じ文字列の有効な UTF-8 エンコーディングでもあります。(逆は真ではありません)。