Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
I am the chief technical officer at InVision App, Inc - a prototyping and collaboration platform for designers, built by designers. I also rock out in JavaScript and ColdFusion 24x7.
Meanwhile on Twitter
Loading latest tweet...
Ben Nadel at the New York ColdFusion User Group (Jan. 2008) with:

Typing High Ascii Values On A Standard Keyboard

By Ben Nadel on

Most applications have some way for you to enter high ASCII characters that are not immediately represented on the keyboard. Homesite, for example, has its Extended Character panel and Fireworks has its Special Characters panel. As it turns out, however, there is a way, at least on Windows, to enter high ASCII characters using just the keyboard and the ASCII number. If you hold down the ALT key, use the number pad to type in the ASCII value, and then release the ALT key, the computer will enter the corresponding ASCII value in whatever application you are using.

 
 
 
 
 
 
 
 
 
 

For some reason, it has to be the number pad; you can't use the numbers along the top of the keyboard. So, if you don't have an extended keyboard, you'll probably have to rely on Function keys to mimic the number pad. Also, there seems to be a difference between standard ASCII values and Windows encoded values. For a list of those characters, check out this page which explores this topic in much more depth.

Now, it might seem crazy to start memorizing ASCII values for characters; but, there are certainly a few characters that I use often enough that knowing the ASCII value will end up saving me time. Probably, the most useful one is the Right-Angle-Quote:

ALT+175

Also, the Bell (like a large mid-dot) is great for creating mockups of unordered lists:

ALT+7

Anyway, I just discovered this the other day and thought it was cool enough to pass on. I've actually been using the ALT+7 approach for years thanks to David Stamm; but, I never really knew what it was doing.



Reader Comments

AutoHotKey or something like it may be a solution for commonly used extended characters. I wouldn't want to do without AHK now that I am used to using it. Thanks to TheCrumb and his TACFUG presentation for that.

Reply to this Comment

At some points I've actually included some of those characters in my passwords. My theory is that it makes them a lot more secure, since most brute force attacks on passwords probably focus on easily accessible keyboard characters.

Although it took some effort to remember them when logging in ;)

Reply to this Comment

@David,

In the article I link to, that is actually what he recommends. He said no one will brute force it and often times, key capture programs won't capture it.

Reply to this Comment

yeah... my password used to include © and Þ ... but knowing how to type those can cause problems sometimes. Some browsers seem to puke on those if you don't make them © or whatever

Reply to this Comment

On-screen character maps don't require remembering ASCII or Unicode numeric values. They exist for every OS, as far as I know. And they allow you pick out the character you want by how it looks, not by memorization.

Unfortunately, the Windows accessory to do this typically loads the character onto the clipboard with style information, and styled text is used in preference to plain text. As a result, the character usually pastes in a different font from the one you're using. So you have to pay the price of restyling after you paste. Generally I'd rather do that than remember numeric values of characters.

If you really like to use numeric values, and you're coding for a web page (not entering a password), you can also use "numeric entity encoding" (ampersand, poundsign, unicodevalue, semicolon). There are numeric entity encoding formats for both decimal and hexadecimal, and even octal, I think.

Numeric entity encoding also works in XML. In ColdFusion, the default output character set is UTF-8, so we don't have to do that. But if you accept XML from others, and those others are clueless about how to UTF-8 encode their text, you can advise them about how to do numeric entity encoding instead. (It's generally a much easier explanation.)

Reply to this Comment

Eeek, this takes me back to doing very strange ASCII graphics for bulletin board headers in the 80s...

/goes off for some Oveltine and to find my slippers...

Reply to this Comment

Hey Ben,
I don't know if this was mentioned, but you have to use the number pad for the numbers. I don't know how to make it work with the top row of numbers on a standard keyboard.

Reply to this Comment

@Steve,

I've definitely used the #-encoding in HTML pages before. That said, I was pretty surprised that Homesite actually encoded my right-angle-quote as » - that it was smart enough to know it had a different encoding for it.

@Garry,

Ha ha ha.

@Travis,

Now that's what I call leveraging technology ;)

@Andrew,

Yeah, I don't know why that is. I theorized that people without a number pad can use the FN-style number pad, but not tested that.

Reply to this Comment

I worked on a site for an event in Cancún (alt+0250) with other verbiage en español (alt+0241). It's amazing all the high-ASCII codes you wind up memorizing if you type them enough times.

(I'd use the easy-to-remember HTML entities, ú and ñ, but my CMS encodes what I type.)

Reply to this Comment

While I'm all for strong passwords, I like the ability to know I can log into any web-based accounts from any connected computer... not just Windows.

I was very sad to see these don't work in Linux. I used to use 171, 172 etc all the time for fractions, but can't now that I'm mostly Linux based.

Reply to this Comment

Yea, these keycodes are very useful. My favs are 3-6 ;)

@MSDN they have a nice point on this:

Alt+Numpad: A method of entering characters by typing in the character's decimal code with the Numeric Pad keys (Num Lock turned on). In Windows:

Alt+<xxx>, where xxx is the decimal value of a code point, generates an OEM-encoded character.
Alt+<0xxx>, where xxx is the decimal value of a code point, generates a Windows-encoded character.
Alt+<+>+<xxxx>, where xxxx is the hexadecimal Unicode code point, generates a Unicode-encoded (UTF-16) character.

(from http://msdn.microsoft.com/en-us/goglobal/bb964658.aspx)

Therefore, there should be a possibility to do at least the OEM or the UTF-16 chars on Linux, too.
On Linux there are some similar possibilities, for example 'Compose Keys' or the KDE keyboard functions.

And normally, the ALT Keycodes also work with notebook layouts with 'FN'-Notepads.

Reply to this Comment

I am already making immediate use of this in graphic programs where I need to mock up a UI. It is sweeeet.

Reply to this Comment

Post A Comment

You — Get Out Of My Dreams, Get Into My Comments
Live in the Now
Oops!
Comment Etiquette: Please do not post spam. Please keep the comments on-topic. Please do not post unrelated questions or large chunks of code. And, above all, please be nice to each other - we're trying to have a good conversation here.