【Java】エンコード/デコードについて(URL/Base64)

Java

はじめに

今回はJavaで「URLエンコード/デコード」「Base64エンコード/デコード」について勉強したことを記載していきたいと思います。

 

エンコード/デコードとは

文字列やファイル、データ等をそれぞれ適切な形式で扱うために置き換えることをエンコードと呼びます。エンコードには文字エンコードや圧縮、今回扱う「URLエンコード」「Base64エンコード」等が存在します。
デコードは反対に、エンコードによって置き換えられたデータを元の形式に戻すことです。

 

URLエンコード/デコード

日本語などのURLに使えない文字列をエンコードする処理をURLエンコードと呼びます。また、URLエンコードされた文字列を復元することをURLデコードと呼びます。
JavaでURLエンコードを実施する際はURLEncoderクラスのencodeを使用します。デコードする際はURLDecoderクラスのdecodeを使用します。

 

    public static void main( String[] args )
    {
        String moji = "エンコード/デコードについて";

        try {
            // URLエンコード
            String encodeMoji = URLEncoder.encode(moji, "UTF-8");
            // %E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89%2F%E3%83%87%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6
            System.out.println(encodeMoji);


            // URLデコード
            String decodeMoji = URLDecoder.decode(encodeMoji, "UTF-8");
            System.out.println(decodeMoji);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }

 

Base64エンコード/デコード

Base64は、64文字の英数字を用いてマルチバイト文字列やバイナリデータを扱うためのエンコード方式です。
Javaでは、エンコードにはEncoderクラスのencodeToStringを使用し、デコードにはDecoderクラスのdecodeメソッドを使用します。

 

    public static void main( String[] args )
    {
        String moji = "エンコード/デコードについて";
        byte[] target = moji.getBytes(StandardCharsets.UTF_8);

            // Base64エンコード
            Encoder encode = Base64.getEncoder();
            String encodeMoji = encode.encodeToString(target);
            // 44Ko44Oz44Kz44O844OJL+ODh+OCs+ODvOODieOBq+OBpOOBhOOBpg==
            System.out.println(encodeMoji);


            // Base64デコード
            Decoder decode = Base64.getDecoder();
            String decodeMoji = new String(decode.decode(encodeMoji));
            System.out.println(decodeMoji);
    }

 

最後に

Javaの環境構築は、この記事を参照してみてください。
【開発環境構築】VS CodeでJavaを使用するための環境構築を実施する – SEもりのLog (selifemorizo.com)

以上、ログになります。
これからも継続していきましょう!!

Javaサーバーサイド関連
おすすめIT本
良いコード/悪いコードで学ぶ設計入門

「ITエンジニア本大賞2023」技術書部門で大賞を受賞した本です。
・コードの可読性
・普段意識したほうが良いこと
・リファクタリング考え方
等、普段のコードを設計する際に意識することが書かれています。
コードのあるべき姿に迷ったら一度読んでみると良い本です。

仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん

Dockerって何?となったときに私が最初に読んだ本です。
Dockerがどんな仕組みで動いているのか、コマンドでは何を命令しているのかを理解できるように、イラストを多用して説明しています。

1冊ですべて身につくJavaScript入門講座

「ITエンジニア本大賞2024」技術書部門で大賞を受賞した本です。
私が次に読もうと思っている本なのでおすすめとして挙げておきたいと思います。

コメント

タイトルとURLをコピーしました