私の歴史と今

振り返ると恥ずかしくなるのが私の歴史。だけどそのときは真面目に書いていた訳でね。そんな今の私を書いていく。

Base64

Jakarta Commons使ってみた。


import java.util.Map;
import java.util.List;
import java.util.ArrayList;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.binary.Hex;

public class CommonsBase64{

public static void main(String[] args) {

try{

// 変換対象の文字列
String before = "123abcABCあいうコード①②③㈱㌔ー〜";
System.out.println("対象文字 =["+before+"]");

// 文字セット
String encodeCharset = "windows-31j";
String decodeCharset = "windows-31j";
System.out.println("エンコード=["+encodeCharset+"]");
System.out.println("デコード =["+decodeCharset+"]\n");

System.out.println("■1文字ずつ");
for(int i = 0; i < before.length(); i++){

String oneString = before.substring(i, i + 1);
byte[] beforeBytes = oneString.getBytes(encodeCharset);

//char[] hexChars = Hex.encodeHex(Base64.encodeBase64(beforeBytes));
char[] encodedChars = (new String(Base64.encodeBase64(beforeBytes), "ascii")).toCharArray();

System.out.print("["+oneString+"]\t-> ");
for(char c: encodedChars){
System.out.print("["+c+"]");
}

// デコード
//String after = new String(Hex.decodeHex(hexChars), decodeCharset);
String after = new String(Base64.decodeBase64( (new String(encodedChars)).getBytes("ascii")), decodeCharset);
System.out.print("\t-> ["+after+"]\n");
}

System.out.println("\n■文字列全部");
String after = new String(Base64.encodeBase64(before.getBytes(encodeCharset)), "ascii");
System.out.println(after);
System.out.println(new String(Base64.decodeBase64(after.getBytes("ascii")), decodeCharset));
}
catch(java.io.UnsupportedEncodingException e){
e.printStackTrace();
}
}
}

結果

対象文字 =[123abcABCあいうコード①②③㈱㌔ー〜]
エンコード=[windows-31j]
デコード =[windows-31j]

■1文字ずつ
[1] -> [M][Q][=][=] -> [1]
[2] -> [M][g][=][=] -> [2]
[3] -> [M][w][=][=] -> [3]
[a] -> [Y][Q][=][=] -> [a]
[b] -> [Y][g][=][=] -> [b]
[c] -> [Y][w][=][=] -> [c]
[A] -> [Q][Q][=][=] -> [A]
[B] -> [Q][g][=][=] -> [B]
[C] -> [Q][w][=][=] -> [C]
[あ] -> [g][q][A][=] -> [あ]
[い] -> [g][q][I][=] -> [い]
[う] -> [g][q][Q][=] -> [う]
[コ] -> [g][1][I][=] -> [コ]
[ー] -> [g][V][s][=] -> [ー]
[ド] -> [g][2][g][=] -> [ド]
[①] -> [h][0][A][=] -> [①]
[②] -> [h][0][E][=] -> [②]
[③] -> [h][0][I][=] -> [③]
[㈱] -> [h][4][o][=] -> [㈱]
[㌔] -> [h][2][A][=] -> [㌔]
[ー] -> [g][V][s][=] -> [ー]
[〜] -> [g][W][A][=] -> [〜]

■文字列全部
MTIzYWJjQUJDgqCCooKkg1KBW4Noh0CHQYdCh4qHYIFbgWA=
123abcABCあいうコード①②③㈱㌔ー〜