JavaA2Z

KAB-studio > プログラミング > JavaA2Z > 「-」とは

「-」

日本語 ハイフン、マイナス、横棒
英語 MINUS SIGN、FULLWIDTH HYPHEN-MINUS
ふりがな はいふん、まいなす、よこぼう
フリガナ ハイフン、マイナス、ヨコボウ

解説

「○○から△△」という意味の全角文字
「1-10」といった使用方法をする。
全角ハイフン」とも言う。
 
この文字は、シフトJISCP932の違いにより、文字化けの原因となる場合がある。
この文字シフトJISからUnicodeに変換した場合の0x2212は「MINUS SIGN」、CP932からUnicodeに変換した場合の0xFF0Dは「FULLWIDTH HYPHEN-MINUS」という名称が付けられている。見た目にはほとんど違いはないが、このふたつは別の文字であり、この齟齬のため文字化けが発生する場合がある。
詳しくは「CP932」の項目を参考のこと。
 
「-」は、「-」の全角文字として使われる。
特に住所や郵便番号で頻繁に使用されるため、旧来のシステムをリプレースする際、古いデータの入ったデータベースをそのまま使用した所、住所録に「-」が大量に含まれていて、全て「?」に変換されてしまった、という問題が非常に多い。
……が、CP932の問題は、一般には「~」文字化けする問題、として認識されているので少し可哀想。

参考サイト


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

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

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

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        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
        {
            // 「-」(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/10/20
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。