Even Apple Messes Up Sometimes
You have to respect Apple. They have excellent products that are known worldwide for their quality and ease-of-use. Part of that ease-of-use comes from their commitment to producing internationalized, world-ready products. However, even the best companies and employees make mistakes.
Recently I purchased a new iMac 27″ computer for my family. Of course, they don’t believe it is for them since I spend the most time using it. But I’m going to stick with my story…it’s the new family computer. Anyway, I immediately noticed that Apple is pushing their iCloud service. During setup and first run of things like iPhoto, I was prompted to choose whether I wanted to use iCloud for backups, etc.
Of course, I had to try out the iCloud service, so I entered all my personal details — name, account id, etc. The service works as expected, and I have nothing interesting to report on that.
To make iCloud clearly available and visible, Apple puts the iCloud service settings into the System Preferences application.
Clicking on the iCloud icon brings up the iCloud settings of course. Again, not much to say there. You have all the typical iCloud-able apps to choose from: Mail, Contacts, Calendars, Photo Stream, etc. However, I did quickly notice that iCloud had a little trouble with my name. Instead of showing my full name as John O’Conner, the iCloud app prominently displayed it as John O'Conner. Oops.
I admit that this is not the first time I have seen my name displayed in this way. Web forms sometimes mistakenly store my name using character entity references. Apparently the apostrophe sends bank and medical systems into fits of confused stupor. However, I’m surprised that it trips up Apple in this way.
It just goes to show you that even some of the best companies can make mistakes with how they handle and display text data. It’s common to normalize text when putting it into a database. However, I don’t think a character entity reference is the right thing to put into your db. If you do, you certainly should remember to decode it when you display it to your user.