aaa.txtというファイルの中に、UTF-8の文字列とSJISの文字列があります。
1行ずつ読み込んで、List<String>の配列に追加したいのですが、
一部、SJISの文字列の行があり、List<String>に文字化けして追加されてしまいます。
文字化けされずに、Listに追加する方法はありますでしょうか。
SJIS文字列をUTF-8文字列にしてListに追加されればよいです。
txt
1 21行目:日本語文字1(UTF-8文字) 32行目:日本語文字2(UTF-8文字) 43行目:日本語文字3(SJIS文字) 54行目:日本語文字4(UTF-8文字) 65行目:日本語文字5(UTF-8文字) 7
java
1List<String> list = new ArrayList<String>(); 2 3FileReader f = new FileReader("aaa.txt"); 4BufferedReader bu = new BufferedReader(f); 5 6String str = bu.readLine(); 7System.out.println(str); 8byte[] tmp = str.getBytes("SJIS"); 9System.out.println(Arrays.toString(tmp)); 10list.add(str);
InputStreamReaderで文字コードを指定して読み込んで、文字コード判定して、
正しい文字コードでlistに追加するのが良いのかと検討していますが、
いまいち、どのように実装すればよいかわかっていません。
InputStreamReaderで、SJISとUTF-8の両方で読み込んでおいて、
文字列判定して、正しい文字コードでlistに追加するような処理をイメージしています
回答1件
あなたの回答
tips
プレビュー