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

Common combinations
Letters & digitsABC 012 / ABC 012
Katakanaアイウ ガパ 。「」・ー / アイウ ガパ 。「」・ー
Symbols!#%&@:-/ / !#%&@:-/
SpacesU+3000 / U+0020 & NBSP
Text to convert
Result
0
Characters converted
0
Characters removed
0
Characters out
0
Lines out
Checks

    Line endings (LF / CRLF), tabs, hiragana and kanji are never touched. Line endings and character encodings belong to Encoding Converter; camelCasesnake_case for identifiers belongs to Case Converter.

    How to Use

    1. 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.
    2. Paste the textThe result appears on the right as you type. Add the space, line-end and blank-line cleanup with the checkboxes underneath.
    3. 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