FIRST CHTools

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

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; camelCase ⇄ snake_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.

    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.

    RowHalf-widthFull-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.

    RowHalf-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