全角と半角を変換する

例を入れて試す:
変換する対象

全角と半角の違い

日本語の環境では、同じに見える文字に2つの符号位置があります。 A(U+0041)と (U+FF21)、1(U+0031)と (U+FF11)は、 見た目の幅が違うだけでなく、コンピュータにとってはまったく別の文字です。 そのため「ABC」で検索しても「ABC」は見つからず、 同じ名前のはずのデータが一致しないという形で問題が表に出ます。

半角カナはなぜ問題になるのか

英数字の全角・半角は「別の文字である」だけですが、 半角カナにはそれ以上の面倒があります

濁点が別の文字になっている

半角カナには濁音・半濁音の文字がありません。濁点は独立した1文字として後ろに付きます。

表記文字数内訳
全角1文字U+30AC
半角ガ2文字U+FF76 + U+FF9E
全角1文字U+30D1
半角パ2文字U+FF8A + U+FF9F

このため、1文字ずつ機械的に置き換えるツールは ガカ゛ にしてしまいます。 正しく変換するには、2文字を見て1文字に畳む必要があります。 逆方向では1文字を2文字に開きます。

文字数が合わなくなる

データベース は8文字ですが、全角にすると データベース で6文字になります。 「20文字以内」といった入力制限のある欄で、見た目より文字数が多いと弾かれるのはこれが原因です。 半角カナを全角に直すと収まることがあります。

システムによっては扱えない

半角カナは、日本語の文字コードの歴史の中で後から足された経緯があり、 受け付けないシステムが今も残っています。 たとえば古い日本語メールで使われる ISO-2022-JP には半角カナの居場所がなく、 送信の途中で失われたり別の文字に化けたりします。 銀行の振込人名義など、半角カナしか受け付けない逆の指定もあります。

変換で気をつける文字

見た目がほとんど同じで、変換すると意味が変わってしまう文字があります。 このツールはこれらを変換しません。

なぜ変換しないか
(U+FFE5)と \(U+005C) Shift_JIS では同じ位置に円記号が割り当てられていた経緯があり、 片方に寄せるとプログラムのパス指定などが壊れます
(U+FF5E)と (U+301C) 全角チルダと波ダッシュ。どちらも全角で、半角・全角の関係ではありません。 Windows と Mac で使われる方が違い、変換の途中で入れ替わると化けの原因になります
(U+2212)(U+2010)(U+30FC) マイナス記号、ハイフン、長音記号。見た目は似ていますが用途が違い、 まとめて - にすると「コーヒー」が「コ-ヒ-」になります

長音記号 は、半角 (U+FF70)との対応だけを行います。 カタカナの一部として扱うので、「カタカナ」を変換したときだけ一緒に変わります。

どちらに揃えるべきか

用途によって答えが違います。迷ったら、次を目安にしてください。

一括で揃えないほうがよい場面のほうが多い、というのがこのツールの前提です。 「すべて半角に」を選ぶと氏名のカナまで半角になり、 「すべて全角に」を選ぶと電話番号まで全角になります。 カテゴリごとに指定すれば、変えたいものだけを変えられます。

文字コードそのものが分からなくなっているファイルは 文字コードを判定してファイルを開く、 すでに化けてしまった文字列は 文字化けを直す を使ってください。