JavaA2Z

KAB-studio > プログラミング > JavaA2Z > Windows-31Jとは

Windows-31J

日本語 ウィンドウズ31ジェイ
英語 windows-31j
ふりがな うぃんどうずさんいちじぇい
フリガナ ウィンドウズサンイチジェイ

解説

CP932IANAでの登録名。
"CP932"で問題ない場合も多いが、IANAでの登録名ではないので、正確を期すなら"Windows-31J"を使用した方がいいだろう。

参考サイト


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

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

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

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

        // シフトJISは、正確には「Windowsの文字コード」ではありません。
        // 正確にはCP932です。

        try
        {
            // たとえば、「~」(0x81,0x60)の場合。
            byte[] bytes = new byte[] { (byte)0x81, (byte)0x60 };
            // シフトJISとして変換すると、文字化けしてしまいます。
            String shiftJis = new String( bytes, "Shift_JIS" );
            System.out.println( shiftJis );
            System.out.println( Integer.toHexString( shiftJis.charAt( 0 ) ) );
            // ?
            // 301c

            // CP932(IANAに登録している名前は"Windows-31J")なら変換できます。
            String windows31J = new String( bytes, "Windows-31J" );
            System.out.println( windows31J );
            System.out.println( Integer.toHexString( windows31J.charAt( 0 ) ) );
            // ~
            // ff5e
        }
        catch( UnsupportedEncodingException e )
        {
            // StringクラスのコンストラクタがUnsupportedEncodingException例外を
            // 投げるので拾います。第2引数で渡された文字コード
            // (上記の例では「Shift_JIS」や「Windows-31J」)が、Javaではサポート
            // されていない文字コードの場合にエラーとなります。
            e.printStackTrace();
        }

        try
        {
            // 同じく、「-」(0x81,0x7C)の場合。
            byte[] bytes = new byte[] { (byte)0x81, (byte)0x7C };
            // シフトJISとして変換すると、文字化けしてしまいます。
            String shiftJis = new String( bytes, "Shift_JIS" );
            System.out.println( shiftJis );
            System.out.println( Integer.toHexString( shiftJis.charAt( 0 ) ) );
            // ?
            // 2212

            // CP932(IANAに登録している名前は"Windows-31J")なら変換できます。
            String windows31J = new String( bytes, "Windows-31J" );
            System.out.println( windows31J );
            System.out.println( Integer.toHexString( windows31J.charAt( 0 ) ) );
            // -
            // ff0d
        }
        catch( UnsupportedEncodingException e )
        {
            // StringクラスのコンストラクタがUnsupportedEncodingException例外を
            // 投げるので拾います。第2引数で渡された文字コード
            // (上記の例では「Shift_JIS」や「Windows-31J」)が、Javaではサポート
            // されていない文字コードの場合にエラーとなります。
            e.printStackTrace();
        }
    }
}
// Sample.java
import java.io.UnsupportedEncodingException;

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

        // シフトJISは、正確には「Windowsの文字コード」ではありません。
        // 正確にはCP932です。

        try
        {
            // たとえば、「~」(0x81,0x60)の場合。
            byte[] bytes = new byte[] { (byte)0x81, (byte)0x60 };
            // シフトJISとして変換すると、文字化けしてしまいます。
            String shiftJis = new String( bytes, "Shift_JIS" );
            System.out.println( shiftJis );
            System.out.println( Integer.toHexString( shiftJis.charAt( 0 ) ) );
            // ?
            // 301c

            // CP932(IANAに登録している名前は"Windows-31J")なら変換できます。
            String windows31J = new String( bytes, "Windows-31J" );
            System.out.println( windows31J );
            System.out.println( Integer.toHexString( windows31J.charAt( 0 ) ) );
            // ~
            // ff5e
        }
        catch( UnsupportedEncodingException e )
        {
            // StringクラスのコンストラクタがUnsupportedEncodingException例外を
            // 投げるので拾います。第2引数で渡された文字コード
            // (上記の例では「Shift_JIS」や「Windows-31J」)が、Javaではサポート
            // されていない文字コードの場合にエラーとなります。
            e.printStackTrace();
        }

        try
        {
            // 同じく、「-」(0x81,0x7C)の場合。
            byte[] bytes = new byte[] { (byte)0x81, (byte)0x7C };
            // シフトJISとして変換すると、文字化けしてしまいます。
            String shiftJis = new String( bytes, "Shift_JIS" );
            System.out.println( shiftJis );
            System.out.println( Integer.toHexString( shiftJis.charAt( 0 ) ) );
            // ?
            // 2212

            // CP932(IANAに登録している名前は"Windows-31J")なら変換できます。
            String windows31J = new String( bytes, "Windows-31J" );
            System.out.println( windows31J );
            System.out.println( Integer.toHexString( windows31J.charAt( 0 ) ) );
            // -
            // ff0d
        }
        catch( UnsupportedEncodingException e )
        {
            // StringクラスのコンストラクタがUnsupportedEncodingException例外を
            // 投げるので拾います。第2引数で渡された文字コード
            // (上記の例では「Shift_JIS」や「Windows-31J」)が、Javaではサポート
            // されていない文字コードの場合にエラーとなります。
            e.printStackTrace();
        }
    }
}

この単語を含むページ

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

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