FIRST CH TOOLS / Text / 41 ZENKAKU ⇄ HANKAKU
Full-width ⇄ Half-width Katakana Converter & Invisible Character Remover
Convert katakana, letters and digits, symbols and spaces between their full-width and half-width forms, choosing a direction for each kind separately. Half-width katakana is handled properly: ガ is two characters, ガ is one. The same pass can collapse runs of spaces, trim line ends and drop blank lines, and it counts the invisible mess — ideographic spaces, zero-width characters, BOMs — that is left behind. Built for normalising Japanese copy supplied by a client and for cleaning a file before importing it.
Converted as you type
Line endings (LF / CRLF), tabs, hiragana and kanji are never touched. Line endings and character encodings belong to Encoding Converter; camelCase ⇄ snake_case for identifiers belongs to Case Converter.
Which characters are affected
| Kind | Full-width | Half-width |
|---|---|---|
| Letters & digits | ABC abc 012 | ABC abc 012 |
| Katakana | アイウ ガ パ ヴ | アイウ ガ パ ヴ |
| Japanese punctuation, brackets, middle dot, prolonged mark | 。 、 「 」 ・ ー | 。 、 「 」 ・ ー |
| Voiced & semi-voiced marks | ゛ ゜ | ゙ ゚ |
| Symbols | ! # % & @ : - / + = ~ | ! # % & @ : - / + = ~ |
| Spaces | U+3000 (ideographic space) | U+0020, NBSP and the Latin space family |
| Hiragana & kanji | あ 漢 | No half-width form exists, so they are left alone |
Japanese punctuation travels with katakana. 。 、 「 」 ・ ー live inside the half-width katakana block (U+FF61–U+FF9F), so choosing "katakana → half-width" turns 「テスト」。 into 「テスト」。. To keep the punctuation full-width, leave katakana alone.
Half-width katakana changes the character count. ガ is one character full-width but two half-width — カ plus ゙. When you are sizing a field with a length limit or a receipt printer, count the result (the "characters out" figure on this page), not the source.
The wave dash 〜 (U+301C), the fullwidth tilde ~ (U+FF5E) and platform-dependent characters (① ㈱ Ⅲ) are reported, never rewritten. Which way they should go depends on where the text is headed, and silently changing them tends to create a different kind of garbled text. You get the counts and make the call.
How to Use
- Pick a combination"Japanese standard" sends letters, digits and symbols to half-width and katakana to full-width. Every kind can also be set individually to leave / half-width / full-width.
- Paste the textThe result appears on the right as you type. Add the space, line-end and blank-line cleanup with the checkboxes underneath.
- CopyTake the right-hand box straight back into the document or the CSV. Anything still half-width katakana or still an ideographic space is listed under Checks.
Katakana: which direction to convert
Half-width katakana → full-width katakana (ガ → ガ)
Set Katakana to Full-width. That is the default on this page and what the "Japanese standard" preset uses. Voiced pairs are put back together instead of being mapped one character at a time: ガ (カ plus ゙) becomes the single character ガ, パ becomes パ, ヴ becomes ヴ. Punctuation that sits in the same half-width block comes along, so 「テスト」。 ends up as 「テスト」。 — open this page with ガパ pre-filled.
Full-width katakana → half-width katakana (ガ → ガ)
Set Katakana to Half-width, or press "All half-width" to send every kind that way at once. ガ splits back into カ plus ゙, so the character count rises even though the text gets narrower; check the "characters out" figure against the field limit before you paste the result into a fixed-length record or a form. Checks will still report how many half-width katakana characters are in the output, because they break in many destinations — ignore that line when half-width is the thing you were asked for.
Does this convert English into katakana?
No. Setting Letters & digits to Full-width turns ABC into ABC — the full-width Latin letters at U+FF21–U+FF3A — which is a change of width, not of script. Writing the same word as エービーシー is transliteration by pronunciation: it needs a dictionary and a judgement about how the word is read. This tool only ever swaps a character for its counterpart of the other width, so it never invents a reading. See what it does instead.
Which kana are covered — and what is left alone
The Katakana setting covers the half-width katakana block (U+FF61–U+FF9F) and its counterparts in the Katakana block (U+30A0–U+30FF): the small kana ァィゥェォャュョッ, the prolonged sound mark ー, the voiced and semi-voiced marks, and Japanese punctuation. Hiragana has no half-width form in Unicode, and neither does kanji, so あ and 漢 stay exactly as they are whichever direction you choose. If a conversion to full-width kana appears to do nothing, the text is usually already full-width — or it is hiragana.
Half-width katakana to full-width katakana: the complete table
Every half-width katakana character and the full-width character this tool turns it into. The half-width katakana block is 63 characters at U+FF61–U+FF9F, with no gaps, and that block is exactly what the Katakana setting covers in both directions.
| Row | Half-width | Full-width |
|---|---|---|
| a | ア イ ウ エ オ | ア イ ウ エ オ |
| ka | カ キ ク ケ コ | カ キ ク ケ コ |
| sa | サ シ ス セ ソ | サ シ ス セ ソ |
| ta | タ チ ツ テ ト | タ チ ツ テ ト |
| na | ナ ニ ヌ ネ ノ | ナ ニ ヌ ネ ノ |
| ha | ハ ヒ フ ヘ ホ | ハ ヒ フ ヘ ホ |
| ma | マ ミ ム メ モ | マ ミ ム メ モ |
| ya | ヤ ユ ヨ | ヤ ユ ヨ |
| ra | ラ リ ル レ ロ | ラ リ ル レ ロ |
| wa, n | ワ ヲ ン | ワ ヲ ン |
| Small kana | ァ ィ ゥ ェ ォ ャ ュ ョ ッ | ァ ィ ゥ ェ ォ ャ ュ ョ ッ |
| Prolonged mark & punctuation | ー 。 、 「 」 ・ | ー 。 、 「 」 ・ |
| Voiced marks on their own | ゙ ゚ | ゛ ゜ |
Voiced and semi-voiced kana are two half-width characters and one full-width character. This tool reads the pair together, so カ followed by ゙ comes back as the single character ガ rather than as カ+゛ side by side.
| Row | Half-width (2 characters) | Full-width (1 character) |
|---|---|---|
| ga | ガ ギ グ ゲ ゴ | ガ ギ グ ゲ ゴ |
| za | ザ ジ ズ ゼ ゾ | ザ ジ ズ ゼ ゾ |
| da | ダ ヂ ヅ デ ド | ダ ヂ ヅ デ ド |
| ba | バ ビ ブ ベ ボ | バ ビ ブ ベ ボ |
| pa | パ ピ プ ペ ポ | パ ピ プ ペ ポ |
| Voiced vowels | ヴ ヷ ヺ | ヴ ヷ ヺ |
Five katakana have no half-width form at all: ヰ ヱ ヮ ヵ ヶ. They are not in U+FF61–U+FF9F, so "katakana → half-width" leaves them full-width and the text comes back mixed. Hiragana and kanji are in the same position — there is nothing to convert them to. Try it with ヰヱヮヵヶ カタカナ.
About This Tool
Normalising width is almost never a single decision: each kind of character wants its own direction. Japanese copy is most often set with letters, digits and symbols half-width and katakana full-width, the form used by the Kyodo News style guide and most house styles that follow it. A single "make everything half-width" button gives you カタカナ in half-width, and "make everything full-width" gives you ABC — both leave you with more to fix than you started with. Hence the three-way choice per kind.
A half-width katakana character is not always one character. Voiced ガ becomes カ plus ゙. A naive character-for-character mapping leaves you with the half-broken カ+゛; this tool composes the pair back into one character when converting to full-width and splits it into two when converting the other way. ヴ (ヴ) and パ (パ) work the same way.
Most failed imports come down to characters you cannot see. An ideographic space (U+3000) is indistinguishable from a normal space inside a spreadsheet cell, and a key lookup quietly misses. Text copied out of Word or a browser brings NBSP (U+00A0) with it, which looks like a space and is not one. Zero-width spaces, BOMs and control codes are completely invisible. The "before a CSV import" preset folds all of those into ordinary spaces, collapses runs, trims the line ends and strips the invisible characters.
Some copy carries its voiced marks separately. File names created on macOS, and strings copied out of them, write ガ as カ plus a combining mark (U+3099): it looks identical, will not match a search and does not count the same. "Compose voiced marks (NFC)" joins them back into one character, and the count is reported under Checks even when the option is off.
This is deliberately not Unicode NFKC normalisation. NFKC does flatten full-width letters and half-width katakana, but it also turns ① into 1, ㈱ into (株) and ¥ into ¥, and rewrites superscripts and ligatures on the way. For tidying a document that is far too much: things you did not want changed change silently. This tool only touches the kinds you selected, and reports platform-dependent characters and wave dashes so that a human decides.
The cleanup runs after the width conversion. "Collapse runs of spaces" reduces a run of half-width spaces, ideographic spaces, tabs and NBSPs to its first character (so a run of ideographic spaces leaves one ideographic space). Trimming covers the same set, and blank lines can be kept, collapsed to one, or removed entirely. Line endings are never rewritten, so tidying a file written on Windows will not leave you with mixed CRLF and LF.
Nothing you paste ever leaves the browser — the conversion and the checks all run on your machine. Directly callable via URL parameters: /en/zenkaku/?text=テスト&preset=ja / /en/zenkaku/?text=A%20B&alnum=han&space=han&collapse=1&trim=1
From AI Agents
The same conversion logic is available as the zenkaku_convert tool of the MCP (Model Context Protocol) server @first-ch/tools-mcp, so an AI agent can call it directly without driving a browser — handy for mechanical jobs such as normalising a supplied manuscript or cleaning a file before it is imported. See How to use from AI agents for the details.
Install
claude mcp add firstch-tools -- npx -y @first-ch/tools-mcp
Examples
# Normalise to the Japanese standard (letters, digits, symbols and spaces half-width; katakana full-width) zenkaku_convert(text="株式会社ABC テスト", preset="ja") # Clean a file before importing it (space cleanup and invisible characters included) zenkaku_convert(path="/tmp/list.csv", preset="csv", outputPath="/tmp/list.clean.csv") # Set the direction per kind (leave katakana exactly as it is) zenkaku_convert(text="アイウ ABC", alnum="han", kana="keep", symbol="han", space="han") # Convert nothing; just report half-width katakana, ideographic spaces and invisible characters zenkaku_convert(path="/tmp/draft.txt", inspect=true)
Other Tools
- 01Batch Image → WebP ConverterWebP Converter
- 02White Background RemoverWhite BG Remover
- 03WCAG Contrast CheckerContrast Checker
- 04Character CounterCharacter Counter
- 05llms.txt Generatorllms.txt Generator
- 06JSON-LD GeneratorJSON-LD Generator
- 07Markdown → PDFMD → PDF
- 08OGP Meta Tag WizardOGP Wizard
- 09Favicon GeneratorFavicon Generator
- 10TikTok PublisherTikTok Publisher
- 11Encoding & Line Ending ConverterEncoding Converter
- 12Batch Image → AVIF ConverterAVIF Converter
- 13Test Data GeneratorTest Data Generator
- 14Marp Markdown → SlidesMarp Slides
- 15Text & Code Diff CheckerDiff Checker
- 16Cron Expression ExplainerCron Explainer
- 17Base64 & Data URI EncoderBase64 & Data URI
- 18URL Parameter Editor & UTM BuilderURL Parameters
- 19HTML Entity Escape & UnescapeHTML Escape
- 20JSON ⇄ YAML ConverterJSON ⇄ YAML
- 21PX ⇄ REM / EM ConverterPX ⇄ REM / EM 単位変換
- 22Color Converter & AlphaColorコード変換&アルファ透過
- 23MD5 / SHA-256 Hash Generatorハッシュ生成
- 24JWT Decoder & Expiry CheckerJWTデコーダー&有効期限チェッカー
- 25User-Agent ParserUser-Agent解析&デバイス判定
- 26UUID & ULID GeneratorUUID (v4) & ULID 一括生成
- 27Aspect Ratio Calculatorアスペクト比計算&サイズ算出
- 28Markdown Table & CSV/TSV ConverterMarkdownテーブル整形&CSV/TSV変換
- 29SQL Query FormatterSQLクエリフォーマッター&整形
- 30QR Code GeneratorQR Code Generator
- 31Regex Tester正規表現テスター
- 32Unix Timestamp ConverterUNIXタイムスタンプ⇄日時変換
- 33New Tab Memo新規タブメモ帳
- 34Image Resizer & Cropper画像リサイズ&クロップ
- 35EXIF Viewer & RemoverEXIF情報の確認&除去
- 36robots.txt Generatorrobots.txt ジェネレーター
- 37Password Generator安全なパスワード生成
- 38Case Converter文字列ケース変換
- 39CSV/TSV ⇄ JSON ConverterCSV/TSV ⇄ JSON 相互変換
- 40PDF Merge, Split & ExtractPDF結合・分割・ページ抽出
- 42X (Twitter) Post CounterX(Twitter)投稿の文字ウェイト計算
- 43CSS clamp() Fluid Typography CalculatorCSS clamp() 計算機
- 44CSS Gradient GeneratorCSSグラデーションジェネレーター
- 45Image Colour Palette Extractor画像からカラーパレット抽出
- 46QR Code ReaderQRコード読み取り
- 47SVG Optimizer & Data URISVG最適化&data URI化
- 48Redirect Generatorリダイレクトルール ジェネレーター
- 49IP / CIDR CalculatorIPアドレス・CIDR計算機
- 50ICS Calendar Event GeneratorICS Generator
- 51cubic-bezier Easing Preview & ComparisonEasing Preview
- 52CSS box-shadow Generatorbox-shadow ジェネレーター
- 53Japanese Dummy Text Generator和文ダミーテキスト生成
- 54Social Media Image ResizerSNS画像サイズ一括書き出し
- 55Time Zone Converter & World Clockタイムゾーン変換・世界時計
- 56Date & Business Day Calculator日数・営業日計算
- 57HTML → MarkdownHTML→Markdown変換
- 58HEIC to JPEG/PNG ConverterHEIC Converter
- 59Print Size & DPI Calculator印刷サイズ・DPI計算機
- 60Color Blindness SimulatorColor Blindness Simulator
- 61SERP Preview & Meta Tag Length CheckerSERPプレビュー&メタタグ文字数チェック
- 62Flexbox & CSS Grid GeneratorFlexbox / CSS Grid ジェネレーター
- 63Text Line Toolsテキスト行操作ツール
- 64Screenshot Frame & Background Makerスクリーンショット枠装飾
- 65Japanese Era ⇄ Western Calendar Converter和暦 ⇄ 西暦変換
- 66URL Slug Generator (Japanese → Romaji)URLスラッグ生成(日本語→ローマ字)
- 67htpasswd Generatorhtpasswd ジェネレーター
- 68OGP Image GeneratorOGP画像ジェネレーター
- 69Stamp Shape Generatorスタンプ形ジェネレーター
- 70Stay Awakeスリープ防止
- 71Screen Recorder with Click Auto-Zoom画面録画+クリック自動ズーム
- 723D Device Mockup Generator3Dデバイスモックアップジェネレーター
- 73OpenAPI Docs & TS Types GeneratorOpenAPI→日本語ドキュメント&TS型定義
- 74Screen Review Board画面レビューボード
- 75AI Decision JournalAI活用案件の判断ログメモ
- 76Card Binder Plannerカードバインダー配置プランナー
- 77e-Stat CSV to Charte-Stat CSV かんたんグラフ化
- 78FAQ Schema (JSON-LD) & Markdown GeneratorFAQ構造化データ(JSON-LD)&Markdown ジェネレーター
- 79Code to Imageコード画像化