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