JavaA2Z

KAB-studio > プログラミング > JavaA2Z > 半角カタカナとは

半角カタカナ

日本語 半角片仮名
英語 halfwidth katakana
ふりがな はんかくかたかな
フリガナ ハンカクカタカナ

解説

カタカナの半角版。
全角のカタカナ「ア」に対し、半角のカタカナは「ア」となる。
 
Unicodeでは、半角カタカナの文字コードバイト数は2バイトであり、0xFF71~0xFF9Dが割り当てられている。
しかし、見た目は半角であり、またプログラム変数名等にも使用できる。
 
問題は、他の文字コードで使用した場合である。
Unicode以外の多くの日本語の文字コード、特にJISシフトJISでは、半角カタカナは1バイト文字である。つまり通常の半角英数字ASCIIと同じということである。
ところが、ASCIIでは7ビットの範囲までの整数値しか規定していないにも関わらず、半角カタカナは8ビットの範囲の値を使用する。この範囲は、制御コードとして使用していたり、また日本語との区別に使用していたりするため、不具合を引き起こす可能性がある。
そのため、単にプログラム上でのみ使用する分には問題はないが、Unicode以外の文字コードに変換して使用する場合や、画面からの入力を許可する場合、ファイルデータベースに保存された文字列に含まれている場合には注意が必要である。

参考サイト


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

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

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

public class Sample
{
    public static void main( String[] args )
    {
        // 半角カタカナを変数名に使用します。
        char ア = 'A';
        System.out.println( ア );
        // A

        // 半角と全角とでは、文字コードは全く別です。
        System.out.println( Integer.toHexString( 'ア' ) );
        System.out.println( Integer.toHexString( 'ア' ) );
        // ff71
        // 30a2
        // このように、Unicodeでは両方とも2バイト文字ですが、
        // 他の文字コード、たとえばShift JISでは
        // 半角カタカナは1バイト文字です。
        try
        {
            // たとえば、Shift JISで出力してみます。
            byte[] bytes = "ア".getBytes( "Shift_JIS" );
            System.out.println( bytes.length );
            // 1
            bytes = "ア".getBytes( "Shift_JIS" );
            System.out.println( bytes.length );
            // 2

            // このように、Shift JISでは
            // 半角カタカナは1バイト文字、
            // 全角カタカナは2バイト文字です。
        }
        catch( UnsupportedEncodingException e )
        {
            // StringクラスのgetBytes()メソッドが
            // UnsupportedEncodingException例外を
            // 投げるので拾っておきます。
            e.printStackTrace();
        }
    }
}
// Sample.java
import java.io.UnsupportedEncodingException;

public class Sample
{
    public static void main( String[] args )
    {
        // 半角カタカナを変数名に使用します。
        char ア = 'A';
        System.out.println( ア );
        // A

        // 半角と全角とでは、文字コードは全く別です。
        System.out.println( Integer.toHexString( 'ア' ) );
        System.out.println( Integer.toHexString( 'ア' ) );
        // ff71
        // 30a2
        // このように、Unicodeでは両方とも2バイト文字ですが、
        // 他の文字コード、たとえばShift JISでは
        // 半角カタカナは1バイト文字です。
        try
        {
            // たとえば、Shift JISで出力してみます。
            byte[] bytes = "ア".getBytes( "Shift_JIS" );
            System.out.println( bytes.length );
            // 1
            bytes = "ア".getBytes( "Shift_JIS" );
            System.out.println( bytes.length );
            // 2

            // このように、Shift JISでは
            // 半角カタカナは1バイト文字、
            // 全角カタカナは2バイト文字です。
        }
        catch( UnsupportedEncodingException e )
        {
            // StringクラスのgetBytes()メソッドが
            // UnsupportedEncodingException例外を
            // 投げるので拾っておきます。
            e.printStackTrace();
        }
    }
}

この単語を含むページ

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

「解説」に含まれているページ

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

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