Thursday, 1 October 2009

BabelMap Version

Coinciding with the release of Unicode 5.2 today (code charts), I am releasing a new version of BabelMap that supports Unicode 5.2 (download BabelMap now).

Unicode 5.2 adds 6,648 new characters and 15 new scripts (Table of Unicode scripts), including 1,071 basic Egyptian Hieroglyphs and 4,149 additional Han "ideographs" (taking the total number of "CJK Unified Ideographs" to 74,394, with another 220+ coming in the next version of Unicode). Unfortunately you will not be able to actually see any of the new characters until the appropriate Unicode fonts are designed and released (and in many cases, not even then if you are using Windows 7). I am maintaining a list of free fonts with Unicode 5.2 coverage at the bottom of my What's new in Unicode 5.2 ? post.

Creative Commons License
All screenshots of BabelMap on this page are licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License (CC-BY-SA-3.0) by Andrew West.

The new version of BabelMap has a number of bug fixes and several new features :

  • The Han Radical lookup utility now covers all 74,394 unified ideographs;
  • A Cantonese phonetic lookup tool based on the Jyutping 粵拼 system has been added;
  • The Pinyin and Jyutping lookup utilities now enable you to filter results on Traditional characters or Simplified characters or both (this is not as straight forward as it may seem, and I still need to do some more work on the Simplified filter which currently lets through many traditional form characters that have no corresponding simplified form);
  • The "ISO Comments" field that is no longer populated, has been replaced by the "Formal Alias" field in the Character Properties dialog and the Advanced Search tool;
  • The character cells in the character grid now use the configured system colours by default, but the colours used can be manually configured from the new "Customize Colours..." menu (making use of some of the new controls in the MFC Feature Pack for Visual C++ 2008 ... but at the expense of an additional 1MB on the size of the executable);
  • A solid or outline image of the currently selected character can be copied to the clipboard by pressing F6 or Shift-F6 respectively (the colours and font size of the glyph image can be configured from the "Customize Colours..." menu);
  • Any or all of the glyphs in any font (selected by Unicode code points or by glyph IDs) can be exported to file in BMP, GIF, JPG or PNG format (font size and glyph colours are customizable) from the new "Export Font Glyphs..." menu item;
  • A screenshot of either the entire BabelMap window or just the contents of the edit buffer can be copied to the clipboard from the Edit menu (at present there is a problem with the full window screen shot under Vista, although there are no problems under XP, or with BabelPad under Vista).

Creative Commons License

Note: Under Windows 7 none of the new Unicode 5.2 characters in the Supplementary Multilingual Plane (Avestan, Egyptian Hieroglyphs, Imperial Aramaic, Inscriptional Pahlavi, Inscriptional Parthian, Kaithi, Old South Arabian, Old Turkic, Enclosed Alphanumeric Supplement, Enclosed Ideographic Supplement and Rumi Numeral Symbols) display correctly in Notepad and most other Windows applications (they are all rendered as two .notdef glyphs). However, they do display correctly in Word 2007, and will also display correctly in the BabelMap character grid, but not in the BabelMap edit buffer. This is an issue with the version of Uniscribe that ships with Windows 7, which appears to support Unicode 5.1, but is not forwardly compatible with Unicode 5.2.

Unfortunately I have not yet had the time to get round to fixing the number one feature request for BabelMap—an up-to-date Help System—but I am hoping to work on it soon, and will be able to release the new help file by the end of the year.

The new version of BabelPad supporting Unicode 5.2 is currently undergoing testing and bug fixing, and unless I get distracted by something else (which seems highly probable), it should be ready by the end of November (I haven't been distracted too much by other things, but unfortunately I have had to delay the release of BabelPad because of problems with displaying Unicode variation sequences using the version of Uniscribe that ships with Windows 7 [2009-11-27]). Anyway, when it is released I will announce it here.

BabelMap Version [2009-10-31]

This update incorporates the following additional features and bug fixes :

  • Fixes a bug whereby BabelMap crashed when sorting "Fonts Covering Selected Block" in the Configuration dialog if the list of fonts contained more than one font with exactly the same name (this can happen if you have the same font installed both as an independent font [e.g. batang.ttf] and also as part of a True Type Collection [e.g. batang.ttc])
  • Fixes a bug whereby some of the radicals in the Han Radical Lookup Utility were displayed as the wrong character
  • Adds a new "Font Coverage" utility that lists all fonts that cover a particular character, or all the characters in a given piece of text, or all the characters in the BabelMap edit buffer

Creative Commons License

The Font Coverage utility lets you determine which fonts on your system cover a particular character or all the characters in a given piece of text

BabelMap Version [2009-11-30]

This update incorporates the following additional features and bug fixes :

  • The Font Information dialog now includes character counts for all CMAP subtables listed for the font (subtable formats 2, 8, 13 and 14 have been newly implemented)
  • The Font Information dialog now includes a Copy CMAP Subtable button, which will copy to the clipboard a list of the character-glyph mappings given in the selected CMAP subtable (covers all platforms, encodings and subtable formats)
  • Now supports fonts that have Unicode type 3 or 4 CMAP encodings (Unicode 2.0+ BMP or Full Repertoire) but do not have any Windows CMAP encodings (Note that by design BabelMap does not support fonts with a Windows type 3 "PRC", 4 "Big5", 5 "Wansung" or 6 "Johab" CMAP encoding but no Unicode CMAP encoding)
  • Now supports Last Resort fonts that use the new Format 13 subtable format with a Unicode or Windows CMAP encoding (not that I have ever seen such a font)
  • A new VS button has been added to the character grid: this button will only be enabled if the currently selected font has a Format 14 CMAP subtable that covers the character with focus; pressing the VS button will open a dialog window that shows the variation sequences in the selected font for the selected character (Note that this feature will work on all supported versions of Windows (i.e. NT 4.0 and later), but only for fonts that include a Format 14 CMAP subtable for Unicode Variation Sequences, such as the Cambria Math and Microsoft PhagsPa fonts that ship with Windows 7; this feature will not work for fonts such as Code2000 and BabelStone Phags-pa Book that implement variation sequences using OpenType features)

Creative Commons License

The Unicode Variation Sequences for U+2269 GREATER-THAN BUT NOT EQUAL TO in the Windows 7 Cambria Math font

BabelMap Version [2009-12-23]

This update fixes a bug that causes BabelMap to get an incorrect glyph index for certain characters in certain fonts, which affects the "Copy CMAP Subtable" function.

BabelMap Version [2009-12-31]

This update fixes a bug that causes BabelMap to crash if the tab key is pressed multiple times.

BabelMap Version [2010-01-02]

This update improves character search, and displays the ISO/IEC 6429 names for control characters in the character description (these used to be displayed, but were inadvertently dropped somewhere along the line).

BabelMap Version [2010-06-06]

This update adds the following features :

  • Supports up to 32 character bookmarks, accessible from the new 'Bookmarks' menu. Press the 'Insert' key to add a bookmark for the currently highlighted character, and press Ctrl+Del to delete any bookmark for the currently highlighted character.
  • Adds a new 'HTML' character mode for the edit buffer, which displays non-Basic Latin characters as HTML entities or NCR references.
  • Changes the behaviour of the UCN and NCR character modes to only display escape codes for non-Basic Latin characters.
  • Adds a new 'Alternative Representation' edit box next to the Character Name edit box, which displays the currently highlighted character as a decimal value, UCN escape code, NCR hexadecimal escape code, NCR decimal escape code, HTML entity (or NCR hexadecimal code), UTF-8 hexadecimal byte code, or UTF-8 octal byte code, as specified in the 'Options' menu.

BabelMap Version [2010-06-09]

Refixes a bug whereby some of the radicals in the Han Radical Lookup Utility were displayed as the wrong character.

BabelMap Version [2010-06-18]

Fixes a bug with the display of text labels in the Options menu that affects some locales; and a bug with the block coverage statistics in the Composite Font Mappings dialog.

BabelMap Version BETA [2010-07-04]

Beta releases of BabelMap and BabelPad suporting Unicode 6.0 are now available for download:

Caveat: The Unicode properties in BabelMap/BabelPad are based on the latest versions of the Unicode 6.0 Beta data files, and although the data is unlikely to change substantially before the release of Unicode 6.0 in late September, some properties may be subject to change, and should not be relied on. However, character names and code points are fixed, and may be relied on.

As usual, please send any bug reports or feature requests to me (see my profile for my email address).


bitxəšï said...


mfarah said...

Thank you.

BabelMap is a great tool, and has been an enormous help several times.

Andrew West said...

Thanks for both your kind comments.

flow said...

i have been working with your tool on a daily basis now for over a year, and i say it is the one and only tool that i know of that gives a usable reference to the plethora of unicode character code points. it is also one of the very few applications that allows users to control which characters get rendered by which font, according to the unicode block that a character belongs to.

i could come up with a long wishlist ;-) but i guess you're already putting to much precious time into this, so instead may i just propose two changes that i think will not require lengthy thinking or redesign. one, how about making the app resizable, and have the central feature—the character grid—expand with the window? two, couldn't maybe the text input area be easily made resizable w.r.t. the character grid? for longer texts it is rather small. i believe these two tiny changes could greatly enhance the usability of this unique program.

Andrew West said...

Resizing is something I have thought about, but never attempted to implement because it always seemed rather difficult to implement well. But I guess that it wouldn't be that difficult if I put my mind to it.

I'm going to be working on other stuff for the next six months or so, but I hope to put some time aside to work on a new version of BabelMap next summer. The new version won't look or behave much differently (although it will cover all seventeen planes using tabs), but I am completely rewriting the functional code to use a set of Unicode string classes that I have written, which should make the code more efficient and more portable. Resizing is a feature that I may try to add to this version.

Ayesha Nicole said...

I am trying to figure out how to use BabMap in order to be able to see Arabic fonts display properly in Mozilla Firefox. Would you please help me?

Thank you.

jesus2099 said...

BabelMap and BabelPad are both incredible tools I can't live without !
Is there a way to search for CJK from Vietnamese reading ?
It seems impossible as I tried different ways without succeeding.
Could you help me ?
Thanks very much anyway !

Andrew West said...

BabelMap and BabelPad are both incredible tools I can't live without !


Is there a way to search for CJK from Vietnamese reading ?

That is on my To Do list. In the meantime please try the Nôm Lookup Tool from the Vietnamese Nôm Preservation Foundation. said...

Thanks for a most useful program. Some comments:
Resizing: you might implement a "number of columns" option for use on wide screens, and just allow resizing by mouse for the vertical dimension. While 16, 32, or 64 work well for hex thinking and column labels, you could allow any convenient number. A "zoom" function for increasing legibility or increasing coverage might be useful.

Braille patterns - is there no standard which letters/digits/... the braille patterns represent?

Other symbol sets. You might also reference APL characters. APL fonts can be downloaded from

What is APL? A Programming Language - without words.


Andrew West said...

Resizing: you might implement a "number of columns" option for use on wide screens, and just allow resizing by mouse for the vertical dimension. While 16, 32, or 64 work well for hex thinking and column labels, you could allow any convenient number.

I will consider resizing and variable columns and rows for the next major release, but to be honest it is a lot of hassle, and I have very little free time to work on BabelMap.

A "zoom" function for increasing legibility or increasing coverage might be useful.

If you right-click on a character it is shown enlarged (at 36, 72, 108 or 144 points as selected in the "Popup Magnification Level" option on the Options menu).

Braille patterns - is there no standard which letters/digits/... the braille patterns represent?

No single standard. What the patterns represent, and which ones are used, depends upon language and/or country.

Other symbol sets. You might also reference APL characters.

There are already 69 APL symbols in the Miscellaneous Technical block at U+2336 through U+237A. As BabelMap is a Unicode character Map it can only include symbols that are encoded in Unicode; but that includes pretty much everything in other symbol sets, and Unicode 6.0 will be adding a load more symbols, including emoji.

Alexey said...

BabelMap is really great tool. Thank you!
I just discovered one issue though.
BabelMap reports wrong Glyph Index for 0x20 character in 'Batang' font when used on Windows Vista. So BabelMap states that 'Batang' font's cmap maps 0x20 character into '0' glyph index, while GetGlyphIndicesW reports 0x20 character is mapped to '71' glyph index.
Also 'GetTTUnicodeGlyphIndex()' sample function from returns the same result as GetGlyphIndicesW() does.

Andrew West said...

I suspect that you must have two different versions of the Batang font installed on your system, i.e. installed both as an independent font (batang.ttf) and also as part of a True Type Collection (batang.ttc). When two fonts with exactly the same name are concurrently installed, the Windows font functions that I use to get font information such as glyph ID are unreliable (it is not predictable which actual font the information returned is for). This is the only explanation I have for BabelMap getting the wrong
glyph ID for one particular character in one particular font.

(BabelMap gets the glyph index of a character by reading the appropriate cmap subtable into memory, and parsing the cmap table itself. This works reliably if Windows has loaded the actual font that is requested, but not if there are two fonts with exactly the same font name to choose from, which is why the True Type Collection format is, in my opinion, a good idea in theory but such a bad idea in practice. Presumably GetGlyphIndicesW() and GetTTUnicodeGlyphIndex() return the glyph index for one version of Batang, but my method gets the glyph index for the other version of Batang.)

Alexey said...


Thank you for the quick response to my comment!
I did further investigation of the issue. So I tried BabelPad on the same machine where I tried BabelMap. Selected 'Batang' font facename in the font facename combobox. Then open glyph export dialog 'Tools -> Export Font Glyphs...'. Checked 'Glyph IDs' radio button. Then set Glyph IDs range (71 to 73). And pressed 'Export' push button. I got three images: Glyph_00071.bmp (empty square), Glyph_00072.bmp (exclamation sigh) and Glyph_00073.bmp (double quote). This is expected behavior as GetGlyphIndicesW() reported that 0x20 (whitespace char) is mapped into 71 glyph idx, '0x21' (exclamation sigh) is mapped into 72 glyph idx.
Then I checked 'Code Points' radio button and set character range for export: 0020 to 0022. Pressed 'Export' push button and got three bmp images once again: U_000020.bmp, U_000021.bmp and U_000022.bmp. U_000020.bmp appeared to be 'equal' to Glyph_00071.bmp etc. So 'Export Glyphs' feature (really great feature!) of BabelPad works correctly for 'Batang' font.
Then I opened 'Font Information' dialog ('Tools -> Font Information...') and pressed 'Copy CMAP Subtable'. Pasted buffer contents to a text editor. The following is the interesting fragment of the text from the clipboard:
Batang CMAP Subtable 1
Platform = Microsoft [Platform 3]
Encoding = Unicode (BMP only) [Encoding 1]
Format = Format 4 (Segment mapping to delta values) [Format 4]

Character Code Glyph Index
0x0000 1627
0x0001 1628
0x0002 1629
0x001F 1658
0x0020 0
0x0021 0
0x0022 0
So 'Export CMAP Subtanble' of BabelPad behaves the same as BabelMap for 'Batang' font (I'm not surprised, these apps should have a lot of common code :) ). What I see here is that 'Export CMAP Subtanble' is not consistent with 'Export Glyphs' at least.

Alexey said...

The problem is that '0' glyph index is returned not just for one character (0x20), but for a number of character ranges in 'Batang' font.

Does BabelMap use GetFontData() Win API to read cmap table? I guess it doesn't and it probably reads font files directly. This might explain why 'Export CMAP subtable' and 'Export Glyphs' features of BabelPab are not consistent. 'Export Glyphs' uses (just a guess) GetGlyphOutline() Win API to create BMP images. So It uses standard Windows font mapper that maps font facename into font file through CreateFont or CreateFontInderect. And 'Export CMAP subtable' feature doesn't use standard windows font mapper and reads font files directly, thus these two features get one facename mapped into different font files. This is just a speculation.
Anyway it seems rather odd that some font explicitly maps several character ranges into 0 glyph.

Andrew West said...

Thanks for the further information. I have investigated the issue, and found that there is a bug in BabelMap and BabelPad (they share a common code base) which causes the wrong glyph index (or a null glyph index) to be returned under certain circumstances.

I have released fixed versions of both BabelMap (version and BabelPad (version

I think that the fixes that I made have resolved the problem, but please let me know if you find any more issues.

Alexey said...


I confirm the bug with 'Batang' font issue is not reproducible any more with BabelPad

Thank your for the quick fix!

3155ffGd said...

There appears to be a crash bug in BabelMap.

Start the application and press the Tab key multiple times. The application will crash.

Andrew West said...

Thanks for letting me know. I have now released new versions of both BabelMap (version and BabelPad (version which fix this bug.

Please let me know if you find any more problems.

Al Sigurdsson said...

Hi! I've been using BabelMap for a long time now, a very useful tool and all, but lately one issue began bothering me. I use avast! antivirus, and it finds a Win32.Sality virus in BabelMap and BabelPad shortly after I unzip them. What should I do about it? I don't see any alternative to these programs, and thus don't want to delete them every time. Thanks

Andrew West said...

The copies of BabelMap and BabelPad that I publish on my website definitely do not have any viruses or malware in them (just google and you will find no bad reports about either BabelMap or BabelPad).

If your virus checker thinks that they are virus-infected then either it must be wrong, or you may have downloaded an infected copy from some other site.

Keith said...

I just discovered Babel-Map. Andrew West extended my first thoughts as I have a wide-screen and high-height monitor and eight rows are no where near enough for efficient searching. Even though I am hex-oriented, I like his more general user selected columns

The other recommendation is to augment the scroll-bar operation with Page-Up and Page-Down keys. Each keyboard click should change by one full screen. When I am searching for one very rare character, I want to view my the whole screen. with a data set this large, the scroll-bar should only be used to fine-tune movement.

I tried to use Babel-Map to find a very rare Unicode character that I know existed, but it was much too unwieldly to use limited by the scroll-bar control. This small upgrade would fix that small problem.

Andrew West said...

eight rows are no where near enough for efficient searching

I will consider adding an option to increase the number of rows from 8 to 16 in the next version.

The other recommendation is to augment the scroll-bar operation with Page-Up and Page-Down keys.

The Page Up and Page Down keys already work as expected, but only if the focus is on the character grid. When BabelMap starts up the focus is on the search box (so that you can immediately type the name or part of the name of a character and hit Enter to go to the desired character), and so the Page Up and page Down keys do not work. If you hit the "Esc" key the focus will go to the character grid, and Page Up, Page Down, Home, End and arrow keys will work as expected. The ">" and "<" buttons also scroll down and up one screen at a time (the ">>" and "<<" buttons scroll down or up to the start of the next or previous Unicode block; the ">>>" and "<<<" buttons scroll by plane).

I tried to use Babel-Map to find a very rare Unicode character that I know existed, but it was much too unwieldly to use

It is difficult to find any character simply by browsing through thousands and thousands of characters, so BabelMap provides a number of tools to help. If you are looking for a particular CJK character, you could try the Radical/Stroke lookup tool (F11) or the Pinyin lookup tool (F12). If you are browsing through a CJK Unified Ideographs block, the "=>" and "<=" buttons take you to the start of the next or previous radical.

JMD said...

Suggestion for BabelMap: Have the "Search for Character by Name" include aliases. It's hard to find "Lambda" for example because it's misspelled "Lamda". Unicode 5 has "formal aliases" as well as the '=' comments.

It would also be nice to bookmark favorite spots.

Andrew West said...

From the Options menu select "Character Name Display and Search", and then check "Unicode Name plus Aliases". Then searching for "Lambda" will find U+03BB GREEK SMALL LETTER LAMDA. Formal aliases are always found regardless of this setting (e.g. searching for "Yi Syllable Iteration Mark" will find U+A015 YI SYLLABLE WU).

Andrew West said...

Bookmarks are a good idea, and I will consider adding them to the release.

Andrew West said...

Bookmarks are supported in BabelMap version that was released today.

JMD said...

I just noticed that U+23E8 is drawn as Reserved, but is listed in the database and correctly reports the name etc.

Nice to hear about bookmarks. I'll be sure to grab the update!

Andrew West said...

How a character is drawn is up to the font that is selected. On my system the only font covering this character is the "Unicode Symbols" font, but it uses a shaded square box for it and all the other currently reserved characters in the block.

JMD said...

Shading: I thought the square substitute for no glyph comes from the font, but the cell background greying is done by your program?

I just downloaded the latest. Options menu→color coding= 72 pt? Right next to "colour coding".

Changing the option to other numbers doesn't affect the display in an obvious way, so what is it?

I do have another suggestion. The Edit Buffer is, in general, not able to show exotic characters that are chosen, even though they'll paste correctly. How about doing automatic font changing, or using the same font that is used for the grid for that char, on a per-char basis? That is not difficult using a classic Rich Edit control. For the other display options, just save the rich edit control and use a different control instance for the NCR etc. and just hide it; then you don't have to worry about re-creating it when Character is chosen again.

JMD said...

P.S. I see that U+23E8 is drawn as expected in this version. The background is clear, not grey.

Options→Customize Colors→Font Size doesn't have any effect when changed.

Is there a help file for this program? The zip contained an EXE only, and Help gives an error.

Andrew West said...

I have accidentally broken the Options menu for EN-US locales. I will update a fixed version shortly.

At present there is no help file.

Andrew West said...

BabelMap version is now available from here -- it fixes the issue with the Options menu.

You should now see an "Popup Magnification Level" item above the "Color Coding" item -- this controls the size of the magnified popup character that is displayed when you right-click on a character.

Sailorleo said...

The last few versions of BabelMap don't display most glyphs on systems that employ a utility which replaces the GDI+ font renderer with a third-party utility (I use gdi++ to substitute it for the freetype2 renderer here, as freetype produces more readable output for me).

This only seems to affect the glyph map and certain dialogs. The edit buffer does display correctly.

Not certain what the cause is, but BabelMap and BabelPad are the only applications affected by this, as far as I can tell.

It's not really a serious issue for me, as gdi++ can hot-switch between GDI+ and freetype; just thought you might want to look into it.

Andrew West said...

Thanks for mentioning this; it is the same issue that WINE has. It seems to be due to the fact that BabelMap bypasses Uniscribe for rendering the characters in the character grid and on certain dialogs, and instead calls ExtTextOutW() directly with the glyph ID obtained from the font's CMAP table (setting the ETO_GLYPH_INDEX flag), and I think that the ETO_GLYPH_INDEX flag is not supported by 3rd party renderers.

The reason why I choose this approach is that Uniscribe is extremely unreliable and capricious (I might even say it is an anagram of the first four letters of the previous word), and produces different and unexpected results on different versions of Windows. For example, if BabelMap were to use Unicsribe (directly or indirectly) to render the character grid, anyone running it on Windows 7 would find that all of the characters in scripts defined in Unicode version 5.2 or later, as well as all the characters in planes 14, 15 and 16, would only ever render as pairs of little square boxes, as discussed in my latest blog post. Uniscribe also randomly performs various unwanted and unrequested font substitutions, so that even though the user has selected a certain font, in some cases the glyph that is rendered will be from some other font that Uniscribe, in its wisdom, thinks is better than the one you really want to use. (Some other limitations of Uniscribe are discussed at the bottom of the BabelPad download page.) Thus, by by-passing Uniscribe I am able to reliably render the correct glyph for the selected font under all versions of Windows ... just so long as the renderer supports the ETO_GLYPH_INDEX flag.

I will consider adding an option to use Uniscribe instead of glyph index rendering (a trivial change as Uniscribe vs non-Uniscribe rendering in the code is governed by a global flag), but I would also suggest that you file a bug report against gdi++, as I suspect that its implementation of ExtTextOutW() is incomplete.

3155ffGd said...

In the new Unicode 6.0 beta version of BabelMap, there's a crash bug that occurs when you attempt to view the tooltip of either of the Unicode characters U+FBF9, U+FBFA and U+FBFB (i. e. hover the mouse cursor over it). It does not happen with any other characters, as far as I'm aware.

Andrew West said...


Thanks for the bug report. Apparently this has been in the code, unnoticed, since forever. It is fixed in the latest builds of both BabelMap for Unicode 5.2 and BabelMap Beta for Unicode 6.0 that I have released today.

Andrew West said...


I have added a Use Uniscribe option (from the 'Options' menu) to both BabelMap and BabelPad (both 5.2 and 6.0 versions) which I released today. This will cause BabelMap/BabelPad to always use Uniscribe for rendering, which I suspect might fix the issue that you are seeing with gdi++ (and also the problem other people are seeing when running under Wine).
Please let me know if this works better for you.

Sailorleo said...

The new version does work, although curiously enough, I didn't need to activate the Uniscribe function.

Andrew West said...

I've got no explanation for that. What happens when you turn the Uniscribe option on and off -- is there any change in display?

Abyssoft said...

Noticed in the latest Build 6.0 Beta D that not all characters are behaving to the edit buffer radio button selected. example regardless of option selected some ascii are rendering as char when UNC is selected instead of the UNC and others aren't this include a mixture of control chars too.

Sailorleo said...

The display's apparent font weight changes slightly (expected behavior due to the differences in the two renderers), but otherwise no noticeable change beyond the known Uniscribe quirks when the function is turned on.

Abyssoft said...

Would love to See support for Javascript split encoding example
codepoint 65536 would be \uDC00\uD800
as this is the only way Javascript properly supports above the BMP

Andrew West said...


Noticed in the latest Build 6.0 Beta D that not all characters are behaving to the edit buffer radio button selected.

That was a deliberate change in behaviour, but perhaps it was not a good idea. I will consider changing back to the old behaviour, or modifying the behaviour so that control characters are always escaped.

Would love to See support for Javascript split encoding example
codepoint 65536 would be \uDC00\uD800

Easy enough to do, but I can't think where I would put it. Any suggestions as to how you would like such a feature implemented?

Abyssoft said...

I can think of two locations the first is the alternative representation box.

The second as an encoding option UCN-16 the rules for this would be pretty simple.

A character is displayed as normal if it meets all the below
-If it is valid character from Unicode 2.0
-Is from the BMP
-Is a member of category {“Uppercase letter (Lu)”, “Lowercase letter (Ll)”, “Titlecase letter (Lt)”, “Modifier letter (Lm)”, “Other letter (Lo)”, or “Letter number (Nl)”, “Non-spacing mark (Mn)”, “Combining spacing mark (Mc)”, “Decimal number (Nd)”, “Connector punctuation (Pc)”}

For those not meeting all three then it is encoded.

Abyssoft said...

Upon further investigation with all browsers and active versions of Javascript up to unicode 5.0 are safe characters with the other conditions.

3155ffGd said...

Another bug I stumbled across which pertains the variation selector window:

*If you try to view the variations of a character that has more than seven defined variation sequences (U+9089, using the HanaMin font), there will be a scroll bar but it won't actually work. Thus you can only see the first seven variations.
*If you try to scroll anyway and then attempt to exit the variation selector window, BabelMap will crash.

Andrew West said...

Thanks for all the bug reports and feature suggestions. The latest beta (BETA E) fixes the variation selector dialog bug and adds Javascript 16 bit UCN sequences as an option for the "alternative representation", as well as other sundry bug fixes and enhancements. Also updates Unicode data to include the Indian Rupee sign which has recently been fast-tracked into Unicode 6.0 (now scheduled for release on about 11th October).

Guymed said...

Hey. I love BabelPad. I work with ancient Semitic scripts, and I am working on keyboard layouts for Imperial Aramaic and Phoenician. In Windows 7's pre-installed character map, I can't view such characters, but thanks to BabelPad, I can. However I am sad to report that I can no longer use it due to receiving the Blue Screen of Death after using the program for certain amounts of time. I am using Windows 7 64-bit. Is there a fix to this? I hope this bug is fixed in the next version of BabelMap, or else I'd have to wait until Windows 7 releases a service pack with Unicode 5.2 support and a better character map.


Andrew West said...

I can no longer use it due to receiving the Blue Screen of Death after using the program for certain amounts of time.

I am sorry and very surprised to hear this. BabelPad and BabelMap have both been tested on Windows 7 64-bit, without any apparent ill effects, although I have not used them extensively for long periods of time on Windows 7. This is the first such bug report I have received, and I am afraid that I have absolutely no clue as to what the problem may be. Without more information (does the blue screen happen when using BabelPad or BabelMap? does it occur when you are doing the same thing each time? are you using the same font or displaying/writing characters from the same script each time?) I have nothing to go on, and will not be able to fix any bug (if there is any ... it may well be a problem with Windows that BabelPad/BabelMap is encountering because it does some unusual stuff that very few other applications do).

I hope this bug is fixed in the next version of BabelMap

The next version of BabelMap/BabelPad is scheduled for release in about 4 weeks time, but it is highly unlikely there will be a fix as I have no idea what the problem is -- sorry.

or else I'd have to wait until Windows 7 releases a service pack with Unicode 5.2 support and a better character map.

I am afraid that you might be waiting a long time for that.

Guymed said...

Well, every time BabelMap crashed, I happened to be running Mozilla Firefox. Also, the program seems to unusually respond to fast scrolling through the character map. The Blue Screen says that a certain system process was interrupted and the computer would shut down to prevent damage. I'll run the program again and see if it crashes, and then after that, reboot and read the error logs.

Carsten said...

Now I wish there was either BabelMap in a Linux version, or a program like BabelMap for Linux. I know I could try to run it through Wine, but a native application would be nicer.

Andrew West said...


I have been able to reproduce the blue screen of death crash after installing the latest version of the Symbola font. The crash seems to occur when displaying hyper-complex glyphs with a huge number of points (such as some characters in the "Miscellaneous Symbols And Pictographs" block in the Symbola font). The problem may also be triggered by complex glyphs in other fonts produced by George Douros that you may be using (although I have no reason to believe that there is anything wrong with the fonts themselves).

I am investigating this issue, and hope to fix it for the upcoming release of BabelMap version 6.0.0, but in the meantime a workaround that avoids the blue screen is to check the "Use Uniscribe" option under the "Options" menu.

Guymed said...

Did my last comment show up correctly? My connection to the internet seemed to have been severed a bit after I pressed the "Publish Your Comment" button, but I'm not sure if it came through. Anyway, I can't wait for Babel Map 6, but with Unicode 6 being rushed because of the new Rupee symbol, there hasn't been time to suggest and/or possibly add more new scripts (I like how they're adding Mandaic but I wanted to suggest adding Nabataean).

Andrew West said...

No, your previous comment did not get through, could you please try again.

Actually Unicode 6.0 has been delayed because of the Indian Rupee Sign, and was originally planned to be published in August or September.

Getting any script encoded involves a lot of work preparing a proposal document, creating a font to use for the code charts, liaising with the user community, responding to issues raised by the character encoding committees, etc., and for complex or problematic scripts the encoding process can take many years.

Andrew West said...

There is already a preliminary proposal for encoding the Nabataean script by Michael Everson that was submitted in July, and which will be discussed at this weeks WG2 meeting in Korea.

Guymed said...

Ok, the comment that didn't go through basically said that I had the Blue Screen around the same time I was installing fonts as well. And, out of curiosity, what language did you program BabelMap in?

Rebecca Menessec said...

Are the beta links down on account of you're getting ready to release 6.x-final?

@Carsten: I'm afraid WINE's font-or-glyph-or-drawing-or-something support is... woeful. I have (or had?) an open bug specifically relating to screwy BabelMap display on WINE, and I've seen a couple others. No notification they've been closed, or, better yet, resolved. Also, I've never yet seen it antialias a font, so even if it ever displays semi-correctly, it's going to be unpretty, if that worries you.

Rebecca Menessec said...

Separately, are there any workarounds at all-- partial or otherwirse --for Win7's bad Uniscribe release? I noticed Office 14 shipped with a newer Uniscribe DLL, but haven't had time to investigate it.

Andrew West said...


BabelMap and BabelPad are programmed in C++ using MFC.

Andrew West said...


The betas are down because of the bug reported by Guymed. I hope to have it fixed in time for the release of Unicode 6.0 next week, but I might be a few days late.

Guymed said...

@Rebecca Menessec

I have a dual boot system with Windows 7 and Ubuntu 10.04 linux, so I went ahead and tested BabelMap running under Wine. You were right about the bad font rendering (no smoothing or anti-aliasing) but there is a fix:

Run Wine's built in Registry Editor (regedit.exe) and find go to the directory that is "HKEY_CURRENT_USER\Control Panel\Desktop" (no quotes). In there you should see an entry that says FontSmoothing, and change the value data to 2. That did the job for me at first, but it looks better if you create the following entries:


BabelMap and other applications will look much better now,

Alex said...

When will Babelmap 6.0.0 come out?

Andrew West said...

Unfortunately the release of BabelMap and BabelPad 6.0.0 has been delayed for a few days due to a serious (blue screen) crash that occurs when rendering some mega-complex glyphs in the Symbola font. I hope to have resolved this issue by Monday 18th October.

My apologies for the delay, and for the inconvenience of anyone who encounters this issue with the beta builds of BabelMap or BabelPad (which are no longer available for download).

Andrew West said...

Finally released BabelMap and BabelPad for Unicode 6.0