Windows Unicode Issue – Fix Typing Unicode Problems Due to Keyboard Shortcuts

alt-codefirefoxkeyboard shortcutsunicodewindows

I’m trying to type some Unicode characters that contain letters. I am using Windows 7 but the issue also appears in Windows 8. An example is ? (U+1F3BB). I can’t type it though because Firefox and every other program I try to type them in has Alt+F or Alt+B as a shortcut for something else.

Is there anyway I can work around these shortcuts? I’ve tried Alt+Shift+(code) and editing the registry.

Best Answer

The input method you seem to be using is the “universal” method on the Fileformat.info page How to enter Unicode characters in Microsoft Windows: press down Alt, enter + using the num keypad key, type the Unicode number in hexadecimal digits, release the Alt. Though very useful, the method isn’t really universal. First, it requires a Windows registry setting, which is usually off by default; but you have apparently this setting OK. Second, typing a character with Alt pressed down may get handled by the software you are using. Apparently in your version of Firefox, AltF gets handled by the browser. But even if you could fix this, it would not help you to enter U+1F3BB. The reason is the third essential limitation of the “universal” method: it works only up to U+FFFF, i.e. for characters in the Basic Multilingual Plane (BMP). Many new icon-like characters have been allocated outside the BMP.

Regarding the clash with shortcut assignments, it seems that using the Shift key together with the Alt key solves the problem. That is, press both Shift and Alt down when starting and keep them both pressed down until you have typed the hex digits. Tested in Firefox 84 in Win 10. Also works in Chrome

The BMP restriction is exemplified by the observation in comments: trying to enter U+10400 using the method results in Ѐ, which is Cyrillic letter Е with grave, U+0400. So when you typed 10400 in trying to use the method, the leading 1 was ignored. (In other words, the hex number entered was taken modulo 10000 hex.)

However, as phuclv’s answer tells, you can enter a non-BMP character as a surrogate pair. You would need to consult resources like Fileformat.info to find out the surrogate values (or tediously compute them).

For typing non-BMP characters, copy and paste is often the most practical way. Of course, you first need something to copy; you could use online tables of characters, or my Full Unicode Input utility, or the character picker in Microsoft Word (which extends past BMP, unlike the Windows character picker, i.e. CharMap).