I just discovered a feature of Calculator.app in OS X 10.3 that is not at all hidden but is little-known judging from a Google search: you can use Calculator to display any Unicode character if you know its numeric value, and you can also do "Unicode math" to display characters a given value above or below the one you're looking at.

To use this feature, select View -> Display Format -> Unicode from the menu. If there is a number in the calculator window when you do this, the Unicode character with that value will be displayed. For example, if you are in a decimal mode with the number 65 displayed, the letter "A" will be displayed when you select Unicode format. If your number was 9786, you'll get a smiley face (☺), Unicode 9786. You can do the same thing from the hexadecimal view: enter 0x263a, shift to Unicode format, and you'll see the smiley face again.

While in Unicode display format, you can view different characters simply by typing "c" or clicking the Clear button, then entering the number of the character. You'll see the Unicode display change as you enter digits. For example, clear the display and then type several 7's. You'll see nothing after the first (Unicode 7 is a control character), then the letter 'M' (77), then a diacritic (777), then a dotted 's' from the Latin extended block (7777), then a Chinese ideogram, and so on.

You can do "Unicode math" by displaying a character and then performing a numeric operation. For example, enter "65" and go to Unicode view to see the character 'A'. Then hit or type '+' to do addition, enter "32," and hit or enter "=" to see the result -- Unicode 97, a lower-case 'a.' It's a particularly useful tool if you're working with HTML or XML code that uses numeric character references and you want to know what character they reference without firing up a browser.

You can do the same thing in hexadecimal by selecting View -> Display Format -> Hexadecimal from the menu and then entering hex values. Remember that in hex mode you can't type 'c' to clear the display, because it's a value! Hit the Clear button instead.

Another handy Unicode tool is UnicodeChecker. This adds a submenu to the Services menu that lets you convert text in place to Unicode entities (or vice-versa) etc. It's also got a standard app interface, but I find myself mostly using it through the Services menu. I've found it very handy.