JavaA2Z

KAB-studio > プログラミング > JavaA2Z > UTF-8とは

UTF-8

日本語 単一文字コード変換形式8ビット
英語 Unicode Transformation Format-8
ふりがな ゆーてぃーえふはち
フリガナ ユーティーエフハチ

解説

文字コードの一種。
あらゆる言語の文字を表現できる文字コード
広義の「Unicode」だが、Javaでの標準文字コードであるUnicodeUCS-2)とは異なる。
 
1文字を1バイト数個によって表現する文字コード
同じ「あらゆる言語の文字を表現できる文字コード」であるUnicodeUCS-2)は1文字を2バイトで表現するが、UTF-8では1文字にかけるバイト数が「1バイト以上」のため、文字によっては3バイトや4バイトも費やすことができ、UnicodeUCS-2)よりも余裕をもって「あらゆる文字」が表現できることになる。
また、ASCIIISO-8859-1)に当たる文字は1バイトであり、全く同じ文字コードのため、半角英数字だけであればこれまでの通常のテキストと同じであり、汎用性が高いと言える。
こういったメリットにより、これからの汎用文字コードとして期待されている。
 
ただし、文字によってバイト数が異なってしまうため、プログラムでの処理が難しい。
たとえば"A"0x41だが、""0xE38182であり、これらを実際に処理するのは難しいだろう。
文字列操作はUnicodeUCS-2)の方が断然楽のため、Stringクラスに格納して操作する方が楽だろう。
 
UTF-8のIANAでの登録名は、同じ"UTF-8"である。
そのため、StringクラスコンストラクタgetBytes()メソッドに渡す場合にも"UTF-8"を渡せばよい。

参考サイト


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

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

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

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // 文字コード「UTF-8」での「あいう」をStringクラスに渡します。
            byte[] source = new byte[] { (byte)0xE3, (byte)0x81, (byte)0x82, (byte)0xE3, (byte)0x81, (byte)0x84, (byte)0xE3, (byte)0x81, (byte)0x86 };
            // 文字コードの変換はStringクラスのコンストラクタで行います。
            // 第1引数には他文字コードの文字列が格納されたbyte型配列を渡します。
            // 第2引数には、そのbyte型配列に格納されている文字列の文字コードを渡します。
            // そうするとUnicodeに変換されて格納されます。
            String string = new String( source, "UTF-8" );
            System.out.println( string );
            // あいう
        }
        catch( UnsupportedEncodingException e )
        {
            // StringクラスのコンストラクタがUnsupportedEncodingException例外を
            // 投げるので拾います。第2引数で渡された文字コード
            // (上記の例では「UTF-8」)が、Javaではサポート
            // されていない文字コードの場合にエラーとなります。
            e.printStackTrace();
        }
    }
}
// Sample.java
import java.io.UnsupportedEncodingException;

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        try
        {
            // 文字コード「UTF-8」での「あいう」をStringクラスに渡します。
            byte[] source = new byte[] { (byte)0xE3, (byte)0x81, (byte)0x82, (byte)0xE3, (byte)0x81, (byte)0x84, (byte)0xE3, (byte)0x81, (byte)0x86 };
            // 文字コードの変換はStringクラスのコンストラクタで行います。
            // 第1引数には他文字コードの文字列が格納されたbyte型配列を渡します。
            // 第2引数には、そのbyte型配列に格納されている文字列の文字コードを渡します。
            // そうするとUnicodeに変換されて格納されます。
            String string = new String( source, "UTF-8" );
            System.out.println( string );
            // あいう
        }
        catch( UnsupportedEncodingException e )
        {
            // StringクラスのコンストラクタがUnsupportedEncodingException例外を
            // 投げるので拾います。第2引数で渡された文字コード
            // (上記の例では「UTF-8」)が、Javaではサポート
            // されていない文字コードの場合にエラーとなります。
            e.printStackTrace();
        }
    }
}

この単語を含むページ

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

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