text / encoding

全角・半角 変換

英数字・記号・カタカナ(濁音・半濁音含む)を全角⇔半角に変換します。 データクレンジングやフォーム入力の正規化に便利です。

使い方

01
  1. 「全角 → 半角」または「半角 → 全角」タブを選択してください
  2. テキストエリアに変換したい文字列を入力すると、リアルタイムで結果が表示されます
  3. 英数字・記号・カタカナ(濁音・半濁音含む)・句読点が変換対象です
  4. ひらがな・漢字は変換されません
  5. 「コピー」ボタンで変換結果をクリップボードにコピーできます

実装コード

02

ASCII領域は Unicode コードポイントのオフセット(0xFEE0)で変換。 カタカナはマッピングテーブルで対応し、濁音・半濁音の2文字結合(ガ → ガ)も正しく処理します。

// 全角ASCII → 半角 (U+FF01-FF5E → U+0021-007E)
export function toHankaku(input: string): string {
  return input
    .replace(/[\uFF01-\uFF5E]/g, (ch) =>
      String.fromCharCode(ch.charCodeAt(0) - 0xFEE0)
    )
    .replace(/\u3000/g, ' ')                          // 全角スペース → 半角
    .replace(/[ァ-ヶヲ-゚、-ー]/g, (ch) => ZEN_TO_HAN_KANA[ch] ?? ch)
}

// 半角ASCII → 全角 (U+0021-007E → U+FF01-FF5E)
export function toZenkaku(input: string): string {
  let result = input.replace(
    /[。-゚][゙゚]|[。-゚]/g,
    (ch) => HAN_DAKUTEN[ch] ?? HAN_TO_ZEN_KANA[ch] ?? ch
  )
  return result
    .replace(/[\u0021-\u007E]/g, (ch) =>
      String.fromCharCode(ch.charCodeAt(0) + 0xFEE0)
    )
    .replace(/ /g, '\u3000')                          // 半角スペース → 全角
}

よくある使用例・注意点

03
データクレンジング・入力正規化
フォームから送られてくるユーザー入力は、全角・半角が混在することがあります。DBに保存する前や検索クエリ生成時に半角に統一することで、文字列比較やソートの一貫性が保てます。
CSV・TSVデータの前処理
ExcelやスプレッドシートからエクスポートしたCSVデータには全角数字や全角スペースが含まれる場合があります。このツールで半角に変換してからプログラムに取り込むと処理しやすくなります。
濁音・半濁音の2文字結合に注意
半角カタカナの濁音(゙)と半濁音(゚)は独立した文字コードです。例えば「ガ」は2文字で「ガ」を表します。このツールでは2文字の組み合わせを正しく認識して全角1文字に変換します。
ひらがな・漢字は変換されない
「あ」「亜」などのひらがな・漢字には全角・半角の区別がないため、このツールでは変換対象外です。変換されるのは ASCII 領域の英数字・記号と、カタカナ・句読点のみです。
文字コード上の仕組み
全角ASCII文字(A~Z、0~9、!~~)は Unicode U+FF01〜U+FF5E に配置されており、半角対応文字(U+0021〜U+007E)と正確に 0xFEE0 の差があります。この性質を利用してコードポイントの加減算だけで変換できます。

関連ツール

04
URLエンコードHTMLエスケープ文字数カウンターBase64変換

ソースコード

05

このツールのソースコード(テストコードを含む)はGitHubで公開しています。 MITライセンスで自由に利用・改変できます。

GitHub でコードを見る →