FIRST CH TOOLS / Text / 41 ZENKAKU ⇄ HANKAKU
Full-width ⇄ Half-width Converter & Text Cleaner
Convert letters and digits, katakana, 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.
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 — Chrome Extension新規タブメモ帳 Chrome拡張
- 34Image Resizer & Cropper画像リサイズ&クロップ
- 35EXIF Viewer & RemoverEXIF情報の確認&除去
- 36robots.txt Generatorrobots.txt ジェネレーター
- 37Password Generator安全なパスワード生成
- 38Case Converter文字列ケース変換
- 39CSV/TSV ⇄ JSON ConverterCSV/TSV ⇄ JSON 相互変換
- 40PDF Merge, Split & ExtractPDF結合・分割・ページ抽出