I find this a very interesting topic. Character sets and their encodings are usually completely invisible to the end user, and often even to the engineers working on the system. But, when a problem rears its head, it can be nasty.<p>A great example is certain api calls in legacy Windows code that modify registry keys. Using the legacy api call can lead to a single-byte encoding of the key, making it un-editable by multibyte methods (i.e. the newer methods that are supposed to depricate the old ones). As much as people love to hate on MSFT, I've often felt honest pity for the programmers who have to build on top of 20+ years of code without breaking backward compatibility.<p>Also, there was an interesting discussion on slashdot recently:<p><a href="http://developers.slashdot.org/story/10/10/31/2127201/Mr-Pike-Tear-Down-This-ASCII-Wall" rel="nofollow">http://developers.slashdot.org/story/10/10/31/2127201/Mr-Pik...</a>