全角と半角の違いと変換の注意点
「ABC123」と「ABC123」は見た目がほとんど同じでも、コンピューターにとっては別の文字です。このガイドでは、全角・半角が生まれた理由、フォームや検索でつまずく場面、半角カタカナの濁点の扱い、そして「〜」と「~」のように対にならない紛らわしい文字をまとめます。
全角と半角があるのはなぜか
日本語の文章では、1文字が正方形の枠を1つ占めます。初期の日本のコンピューターには2種類の文字集合がありました。1バイトの JIS X 0201 には英数字と、枠の半分の幅で表示される少数のカタカナ(半角カナ)が入っていました。2バイトの JIS X 0208 には漢字・かなに加えて、枠いっぱいの幅の英数字がもう1組入っていました。これが全角英数字です。
Unicode は古いデータを失わずに変換できるよう、両方の文字を残しました。全角の ASCII 文字(U+FF01〜FF5E)と半角カタカナ(U+FF61〜FF9F)は「Halfwidth and Fullwidth Forms」というブロックにあり、それぞれがどの文字に対応するかは Unicode 文字データベースに記録されています。変換ツールはこの対応表に従います。
全角形と半角形がある文字
| 種類 | 全角 | 半角 |
|---|---|---|
| 英字 | ABC abc | ABC abc |
| 数字 | 0123 | 0123 |
| ASCII 記号 | !?@#()-/ | !?@#()-/ |
| スペース | 全角スペース(U+3000) | 半角スペース(U+0020) |
| 通貨などの記号 | ¥ ¢ £ | ¥ ¢ £ |
| カタカナ | カタカナ ガ パ | カタカナ ガ パ |
| 句読点・長音 | 。「」、・ー | 。「」、・ー |
漢字とひらがなには1つの幅しかありません。半角のひらがなはなく、小さい「ヵ」「ヶ」「ヮ」や「ヰ」「ヱ」にも半角形はありません。
全角・半角でつまずく場面
- 入力フォーム。電話番号や郵便番号、クレジットカード番号の欄が半角数字だけを受け付ける場合、「090」はエラーになります。ほかのページからコピーした番号が全角だったときは、半角に変換すると通ります。
- 住所の「ー」。「1ー2ー3」の「ー」はカタカナの長音記号(U+30FC)で、ハイフンではありません。システムによっては番地として読めないので、「1-2-3」または「1-2-3」と書きます。
- フリガナ欄。名前の読みを全角カタカナで求めるフォームもあれば、ひらがなで求めるもの、半角カナだけを受け付ける古いシステムもあります。欄の説明に従ってください。
- 検索と重複。「ABC」で検索しても「ABC」が見つからないことがあり、顧客名簿に同じ名前が全角と半角で二重に登録されることもあります。
- 見た目。英文の中の全角英字は間延びして見え、日本語の中の半角カナは詰まって見えます。
半角カタカナの濁点・半濁点
半角カタカナには濁音・半濁音の文字がありません。「ガ」は「カ」と濁点「゙」の2文字、「パ」は「ハ」と半濁点「゚」の2文字で書きます。正しい変換ツールは、全角にするときに2文字を1文字にまとめ、半角にするときにまた分けます。そのため文字数が変わり、「ガッコウ」は5文字、「ガッコウ」は4文字です。
前の文字と合わさらない濁点(「ア゙」など)は「ア゛」のように独立した記号のまま残ります。「ヴ」は「ヴ」に、「ヷ」「ヺ」は「ヷ」「ヺ」になります。
対にならない紛らわしい文字
| 文字 | 正体 | 半角との対応 |
|---|---|---|
| ~(U+FF5E) | 全角チルダ | あり:~ |
| 〜(U+301C) | 波ダッシュ(日本語の記号) | なし |
| -(U+FF0D) | 全角ハイフンマイナス | あり:- |
| ー(U+30FC) | カタカナの長音記号 | 半角カナの「ー」のみ |
| " ' | 全角の引用符 | あり:" ' |
| “ ” ‘ ’ | 曲がった引用符 | なし |
バックスラッシュは特殊です。JIS X 0201 では ASCII のバックスラッシュの位置に円記号が割り当てられていたため、日本語フォントの中にはバックスラッシュを「¥」の形で表示するものがあります。文字は同じで、見た目だけが違います。
ひらがなとカタカナの変換
「ぁ」から「ゖ」までのひらがなには同じ名前のカタカナがあり、Unicode では96文字ずつ離れて並んでいるので、変換は正確にできます。「やまだ たろう」は「ヤマダ タロウ」になります。長音記号「ー」はどちらでも使うのでそのまま残り、「ヷ」のようにひらがなにない文字はカタカナのまま残ります。
プログラマー向け:正規化は変えすぎることがある
Unicode の正規化形式 NFKC でも全角英数字は半角になり、「ガ」は「ガ」になります。ただし同時にほかの多くの文字も変わります。「①」は「1」、「№」は「No」、「㈱」は「(株)」、「㍻」は「平成」になります。検索キーをそろえるときなど、それでよい場合に使ってください。幅だけを変えたいなら、全角・半角の対だけを変換し、ほかの文字は残します。
よくある質問
日本語の文章では、数字は全角と半角のどちらを使うべきですか?
どちらも使われており、出版社や役所ごとに決まりがあります。1つの文書の中ではどちらかに統一し、フォームに指定があればそれに従ってください。
フォームで「カタカナが正しくない」と言われます。
全角カタカナが必要なのに半角で入力した(またはその逆の)可能性があります。「ァ」「ッ」のような小さい文字を受け付けない欄もあります。欄の説明を確認してください。
半角にすると漢字も変わりますか?
変わりません。漢字、ひらがな、ハングルには半角形がないので、そのまま残ります。
全角スペースは半角スペース2つと同じですか?
違います。全角スペース(U+3000)は漢字1文字分の幅を持つ1つの文字です。半角に変換すると、半角スペース1つになります。