Javaバージョン:8
OS:Windows
java
1String ABC = "アイウエオ"; 2 3String TEST = String.format("%-20s",ABC); 4String TEST2 = new String(TEST.getBytes("SJIS"), 0, 20, "SJIS"); 5 6txtbw.write(TEST2);
のようなソースがあり、ABCの値「アイウエオ」に20文字より足りない場合、スペースを
つけて、20バイト分の値をテキストに書き込む処理をしようとしています。
String TEST = String.format("%-20s",ABC);
を外して、
String TEST2 = new String(ABC.getBytes("SJIS"), 0, 20, "SJIS");
とすると、ABCの値が5文字(20バイト未満)なので、エラーになってしまいます。
そこで、
String TEST = String.format("%-20s",ABC);
として、空白文字を右側に埋め込んだ後に、
String TEST2 = new String(TEST.getBytes("SJIS"), 0, 20, "SJIS");
としたのですが、作成されたテキストの文字コードが[EUC]となり、「アイウエオ」が文字化けに
なってしまいます。
String.format("%-20s",ABC)の部分がEUCにしていると思うのですが、ここをSJISにして、
文字化けをさせない方法はありますでしょうか?
String TEST2 = new String(TEST.getBytes("SJIS"), 0, 20, "SJIS");
の部分にて「TEST」文字が20バイト未満であれば、半角スペースを埋め込み、
20バイトをSJISで取得するような方法があればご教授をお願いします。
宜しくお願いします。
回答3件
あなたの回答
tips
プレビュー