Q: What characters are used in English for a person's name? [Edit]
To be clear, this is not a programing question. What is sought an example of set of rules, a government or a business (in an English speaking locale) uses to determine the acceptable character set of people's names.  
I am not trying to limit names, but to understand what limits have been applied  in English speaking locales.
[Edit 2018] I did find one about length:
Hawaiian Woman Gets IDs That Fit Her 36-Character Last Name: the state's cards will have room for 40 characters in "first and last names and 35 characters for middle names,"
Any other examples appreciated.
@Mark Beadles suggested addressing what problem would an answer help one solve.  My primary interest stems from decoding old and new government/business records (death certificates, city directories, phone books), both typed and some hand written.  How would various names using atypical letters get mangled, restricted and how that changed over time to accommodate?  Yet much of that could interpretive and opinionated.  Instead, I am looking for rules, preferable published, that specified what names could be published in some English speaking locales.

Obviously the letters A-Z (upper and lower case) are used in a person's name.
Last names like "Smith-Brown", "Van Buren", "O'Brian" also use -, space and '.
Historical ÆLFRÆD and novel names like "Number 16 Bus Shelter and Violence" push the range of acceptable characters.  
I am looking for a modern example of some English speaking country or business (like a phone directory publisher) published rules that define acceptable/non-acceptable characters of a name of more than just the usual A to Z.

Other posts:
What non-alphabetic characters are valid in English spelling? discuses English words, but I suspect names have a broader range. I suspect acceptable characters used in names in English speaking lands have a wider range characters than the rest of the language.
Any other letters lost besides thorn, edh, and yogh? discuses early words.


A: English often changes names little these days (though your examples include one where it did change names earlier, the O' form used in Anglicising names beginning with Ó, like O'Brian for the Irish Ó Briain).
For this reason you can expect all manner of characters to be used in names in English-language contexts.
Characters you can safely prohibit:
Non-characters (obviously, you can prohibit them anywhere you a round-tripping or security requirement doesn't stop you).
Control characters.
Line-separators.
Paragraph-separators.
Characters you can safely normalise:
All space [Zs] characters except Ogham space and ideographic space can be replaced with the "normal" space (U+0020) character.
Aside from that, you'd really be better off allowing even currency symbols; they'd be very unusual, but the could appear in a name, especially if someone uses a name they perform under.
You could opt to prohibit alphabetic characters that aren't Latin, and force people to transcribe into Latin, but you're probably better off if you don't. (You aren't making any customers happier and are making some less happy, since it won't affect those of us whose names are in Latin letters, but will annoy those whose names are not).
Besides which, what if you're successful enough to have to widen your support to other languages in the future? You'll just have to loosen such a rule again when that happens.
