JavaA2Z

KAB-studio > プログラミング > JavaA2Z > エンコードとは

エンコード

日本語 符号化
英語 encode
ふりがな えんこーど
フリガナ エンコード

解説

ある情報を「コード」の状態に変換すること。もしくはその変換形式。
 
ある情報に対して、それを簡略化、暗号化したものを「コード」という。
コードの形式に変換することを「エンコードする」という。
エンコードする際の形式を「エンコード形式」「エンコーディング」と言う。ただしこのあたりは曖昧であり、「エンコード」とこれらが同義である場合もある。
エンコードとは逆に、エンコードした情報を元の状態に戻すことを「デコード」という。
 
狭義においては「文字コード」のことを指す。
文字コードはそれそのものが「コード」であり、また様々な文字コードが存在するため、これらの形式に変換すること、もしくはその変換形式を「エンコード」と呼ぶことがある。
 
これとは別に、画像の形式を変換することを「エンコード」と言う。
たとえばavi形式のファイルをmpeg形式に変換し、その際圧縮を掛けたりすることを「エンコードする」と言う。
この場合には略して「エンコ」ということも多いが、だからと言ってプログラミング用語の「エンコード」を「エンコ」と略すとひんしゅくものなので注意。
 
エンコードかどうかは「主観」によって異なる点に注意。
たとえばavi形式のファイルをmpeg形式に変換しても、ビデオカードが「圧縮されたmpeg形式」を標準で扱えるようになっていれば、それはエンコードではなくデコードである、とも言える。
この場合「ハードウェア内でデコードしてるのでは」という話になるが、それを言ってしまえば、「あ」という文字すら「コード」であり、人間の脳がそれを「デコード」して理解している、と言えてしまうため、Unicode0x3042を「あ」として画面に出力することすら「エンコード」になるのでは、という話になってしまう。
このように状況によって曖昧になる単語のため、あまり厳密な定義の元に使用されることは少ない。また、そのため「デコード」という単語は使用されない傾向にある。

参考サイト


(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
import java.io.UnsupportedEncodingException;

public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            String source = "あいう";
            System.out.println( source );
            // あいう

            // Unicodeとして格納されている文字列"あいうえお"を、
            // シフトJISとして取り出します。
            // 「シフトJISへのコード化」つまり「エンコード」するわけです。
            byte[] bytes = source.getBytes( "Shift_JIS" );
            forint iF1 = 0; iF1 < bytes.length; ++iF1 )
            {
                System.out.println( Integer.toHexString( bytes[iF1] ) );
            }
            // ffffff82
            // ffffffa0
            // ffffff82
            // ffffffa2
            // ffffff82
            // ffffffa4

            // これを元に戻すのが「デコード」です。
            String string = new String( bytes, "Shift_JIS" );
            System.out.println( string );
            // あいう

            // ただし、この例では「Unicodeの文字列」を主観としています。
            // 入力時にシフトJISだった場合にはシフトJISからUnicodeに変換する
            // ことが「エンコード」になります。
            // そもそも、人間にとっては、コンピューター向けに「整数値化された文字」
            // はそれそのものが「エンコードされたもの」と言えます。
        }
        catch( UnsupportedEncodingException e )
        {
            // StringクラスのコンストラクタがUnsupportedEncodingException例外を
            // 投げるので拾います。第2引数で渡された文字コード
            // (上記の例では「Shift_JIS」)が、Javaではサポート
            // されていない文字コードの場合にエラーとなります。
            e.printStackTrace();
        }
    }
}
// Sample.java
import java.io.UnsupportedEncodingException;

public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            String source = "あいう";
            System.out.println( source );
            // あいう

            // Unicodeとして格納されている文字列"あいうえお"を、
            // シフトJISとして取り出します。
            // 「シフトJISへのコード化」つまり「エンコード」するわけです。
            byte[] bytes = source.getBytes( "Shift_JIS" );
            for( int iF1 = 0; iF1 < bytes.length; ++iF1 )
            {
                System.out.println( Integer.toHexString( bytes[iF1] ) );
            }
            // ffffff82
            // ffffffa0
            // ffffff82
            // ffffffa2
            // ffffff82
            // ffffffa4

            // これを元に戻すのが「デコード」です。
            String string = new String( bytes, "Shift_JIS" );
            System.out.println( string );
            // あいう

            // ただし、この例では「Unicodeの文字列」を主観としています。
            // 入力時にシフトJISだった場合にはシフトJISからUnicodeに変換する
            // ことが「エンコード」になります。
            // そもそも、人間にとっては、コンピューター向けに「整数値化された文字」
            // はそれそのものが「エンコードされたもの」と言えます。
        }
        catch( UnsupportedEncodingException e )
        {
            // StringクラスのコンストラクタがUnsupportedEncodingException例外を
            // 投げるので拾います。第2引数で渡された文字コード
            // (上記の例では「Shift_JIS」)が、Javaではサポート
            // されていない文字コードの場合にエラーとなります。
            e.printStackTrace();
        }
    }
}

この単語を含むページ

「みだし」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/08/20
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。