BabelPad (Unicode Text Editor for Windows) (original) (raw)
— Supporting Unicode since 2002 —
Overview
BabelPad is a free Unicode text editor for Windows developed by Andrew West that supports the proper rendering of most complex scripts, and allows you to assign different fonts to different scripts in order to facilitate multi-script text editing. It also provides many useful features and special utilities for processing Unicode text. BabelPad was first released in 2002 (Unicode 3.2), and is updated for each new release of the Unicode Standard. The current version supports Unicode 16.0 which was released on 10 September 2024.
Summary of Features
These are some of the key features of BabelPad. For more information see the BabelPad Help pages.
- Open files in a wide variety of Unicode or legacy encodings; save files in any Unicode encoding (UTF-8, UTF-16, UTF-32) or Unicode-compatible encoding (GB18030), or as ASCII text with escaped Unicode characters.
- Able to open and edit very large (multi-megabyte) files.
- Open and merge multiple files into a single document.
- Split the current document into multiple files based on line ranges or keywords.
- Standard edit functionality, including drag-and-drop editing, multiple undo/redo, find and replace, and casing functions (for all casing scripts in Unicode).
- Left-To-Right (LTR) or Right-To-Left (RTL) page layout; and support for bidirectional text.
- Render text with either a single font or a user-defined composite font (where you can define which font to use for each Unicode block).
- In text mode, Unicode text is displayed using Microsoft's Uniscribe rendering engine (USP100.dll) or the Universal Shaping Engine for Windows 10+. Please note that the text rendering behaviour for some complex scripts may vary depending upon the version of Windows that BabelPad is running on. When running on old versions of Windows, some complex scripts may not show expected shaping or joining behaviour, and some right-to-left scripts may be laid out in left-to-right order.
- In glyph mode, all Unicode characters are rendered as individual spacing glyphs (i.e. with no shaping or joining of complex text).
- COLR/CPAL format fonts supported, allowing polychromatic rendering of glyphs (e.g. emoji characters and emoji sequences) in both text mode and glyph mode.
- Background and text colours are user-configurable.
- Option to display text in different colours for different Unicode-defined scripts.
- Convert Unicode text to/from a variety of escape codes (including converting to/from Unicode character names).
- Convert between Unicode characters and code points by pressing Alt-X after a character or at the end of a code point.
- Apply Unicode normalization (NFC, NFD, NFKC, NFKD) to text.
- Convert Chinese text between traditional and simplified character forms.
- Convert Chinese text to Mandarin pinyin readings.
- Convert Japanese text between old and new character forms.
- Convert between Vietnamese alphabet and VIQR.
- Convert Extended Wylie Tibetan transliteration into Unicode Tibetan characters.
- Convert between Yi (Nuosu) romanization and Unicode syllables.
- Sort text according to the Unicode Collation Algorithm (UCA) or the CLDR Collation Algorithm.
- Manipulate delimited columns of text (reorder, cut, copy, paste and sort columns delimited by tabs or any user-specified character or string).
- Transcode from one list of characters or code points to another list of characters or code points
- Batch replace one list of text strings with another list of text strings
- Advanced character search utility which allows you to find all Unicode characters that match specified criteria.
- Character Map utility to find and enter any Unicode character.
- Supports user-defined custom keyboard layouts and text input methods (file format).
- Character lookup tools for finding Han (CJKV) characters by radical/stroke or by Mandarin or Cantonese readings.
- Character lookup tool for finding Yi (Nuosu) characters by radical/stroke.
- Character lookup tool for finding Tangut characters by reference code.
- Various tools providing detailed information about Unicode versions, scripts, planes, blocks.
- Emoji data tool that lists data about all Unicode-defined emoji, and select single or composite emoji.
- Test framework for OpenType fonts.
- Show all Unicode properties for the character at the current cursor position.
- Show additional non-Unicode data for Han (CJKV), Tangut and Egyptian Hieroglyph characters.
- Unicode code point and character name of character at the current cursor position is displayed on the status bar, with additional information for Han (CJKV) and Tangut characters.
Technical Details
BabelPad and BabelMap are Windows desktop applications written in C++ using the MFC architecture. The two applications share a common code base, and the release versions are built using Microsoft Visual Studio 2008 (I cannot upgrade to a more recent version as applications built using later versions of Visual Studio do not run on Windows XP or earlier, and I am committed to supporting Windows 2000 upwards for as long as my old laptop keeps going). Up to 2008 (Unicode 5.1), BabelPad and BabelMap were released in two versions, one designed to run on Windows 95/98/Me (which have no native support for Unicode, but can nevertheless display all Unicode characters if you try hard enough), and one more fully-functional version that only runs on Windows 2000 and later. Support for Windows 95/98/Me was discontinued in 2009 after I lost access to my test PC.
BabelPad and BabelMap utilize the fonts installed on your computer to display Unicode text, and so can only display Unicode characters that are available in fonts on your system (this is a deliberate design limitation). In text mode (BabelPad edit view and BabelMap edit buffer) text is rendered using the Uniscribe (usp10) API, specifically the ScriptStringOut() function. This ensures that no automatic font substitution ever occurs, and the user-selected or user-configured font is always that font used to display the text. In glyph mode (BabelPad edit view and BabelMap edit buffer) and within the character map grid, all characters are displayed using the WinGDI function ExtTextOutW(), but with characters selected by font glyph index rather than their Unicode value (this means that the software first parses the selected font's cmap table to obtain the desired glyph index of each character to be displayed). As the software relies on Windows to render Unicode text (when in text mode), support for complex scripts may vary for the same version of BabelPad or BabelMap depending on the version of the Windows operating system the software is running on. Some complex scripts that have only been added to the Unicode Standard in recent years may not display correctly (i.e. no expected shaping or joining behaviour) when the software is run on an old version of Windows (e.g. XP, Vista, 7), but will display correctly when the software is run on a current version of Windows (e.g. 10 or 11). Therefore, for optimal Unicode support it is best to run BabelPad and BabelMap on a recent version of Windows.
Download
BabelPad is free to download and use for personal or commercial purposes. This free version is fully-featured, with no functional or time limitations, no adverts, no in-app purchases, and no malicious features. BabelPad is distributed as a single executable file (no installer). Simply download and unzip the single executable file (BabelPad.exe), and then run it from the desired location on your computer (recommended to run it from a subfolder of the "Program Files" directory). BabelPad runs on Windows 2000, XP, Vista, 7, 8, 8.1, 10, and 11. For support, bug reports, or feature requests, please email me (Andrew West) at the email address given in BabelPad's About box (F9). Please do not download BabelPad from any site other than babelstone.co.uk. I do not provide support for third-party distributions of BabelPad, such as BabelPad Portable from PortableApps.com.
BabelPad | Version 16.0.0.2 (2024-09-19) | Download | Release notes |
---|---|---|---|
BabelPad 简体中文版 | Version 16.0.0.2 (2024-09-19) | Download | |
BabelPad 繁体中文版 | Version 16.0.0.2 (2024-09-19) | Download | |
BabelMap | Version 16.0.0.2 (2024-09-19) | Download | Release notes |
The latest version of BabelPad runs on Windows 2000 or later (if running on Windows 2000, you may need to install GDI+ (gdiplus.dll) for BabelPad to work). An unsupported old version of BabelPad (supporting Unicode 4.1) that runs on Windows 95/98/Me is available for download here.