Quais são todos os caracteres permitidos para os nomes das pessoas?

votos
35

Há o AZ standard, az personagens, mas também existem hífens, em traços, citações, etc.

Além disso, há todos os caracteres internacionais, como tremas, etc.

Então, para um sistema baseado em Inglês, que é o conjunto completo? E sobre conjuntos para outros idiomas? E sobre UTF8, UTF16, etc?

Bônus pergunta: Como muitos campos de nome são necessários, e quais são seus comprimentos máximos?

EDIT: Há definitivamente dois tipos diferentes de personagens envolvidos em nomes de pessoas, aqueles que estão lá como parte do contexto, e aqueles que estão lá por razões estruturais. Eu não quero para limitar ou interferir com os caracteres de contexto, mas eu preciso lidar com as estruturais.

Por exemplo, eu tinha um nome vêm em que foi separada por um traço, mas era difícil distinguir que a partir do caráter de menos. Para tornar o sistema mais fácil para pesquisar, eu quero tirar todos os cinco tipos diferentes de traços, e mapeá-los para um carácter único (menos), de que maneira o usuário não precisa saber especificamente quais símbolo foi inicialmente inscritas.

O problema existe por traços, provavelmente cita bem, mas também quantos outros símbolos?

Publicado 07/01/2009 em 17:42
fonte usuário
Em outras línguas...                            


10 respostas

votos
36

Não é bom artigo do W3C chamado nomes pessoais em todo o mundo que explica os problemas (e possíveis soluções) muito bem (era originalmente um post no blog de duas partes por Richard Ishida: parte 1 e parte 2 )

Pessoalmente, eu diria: apoiar todos os Unicode Character impressão e para ser seguro fornecer apenas um único campo "nome" que contém o nome completo, formatado. Desta forma, você pode armazenar praticamente toda forma de nome. Você pode precisar de um armazenamento mais estruturada, mas então não espere para ser capaz de armazenar cada combinação única de uma forma estruturada, pois há simplesmente demasiado muitos diferentes.

Respondeu 07/01/2009 em 17:48
fonte usuário

votos
14

Whitelisting caracteres que podem aparecer no nome de uma pessoa é o caminho errado para ir, se você me perguntar. Claro, [A-Za-z] é um ponto de partida justa, mas, como você disse, você tem problemas com nomes "europeus". Então você mapear todas as tremas, circumflexes e aqueles. E sobre nomes chineses? Japonês? Indiano? Hebraico? Você está entrando em uma batalha contra as turbinas eólicas.

Se você absolutamente deve verificar a validade do nome de alguém, eu sugiro fazer uma lista negra modesta de certos caracteres. Chaves, caracteres matemáticos, alguns sinais de pontuação e tal pode ser seguro para ignorar. Mas eu seria cauteloso, se eu fosse você.

Poderia ser melhor para apenas aceitar o que vem dentro. UTF-16 deve ser conjunto de caracteres exagero de hoje, que deve ser adequada para alguns anos.

Edit: Quanto à sua pergunta sobre o comprimento do nome e quantidade de nomes. Se você realmente quer que as pessoas escrevem seus nomes verdadeiros e completos, eu acho que a única resposta infalível para ambas as perguntas seria "infinito". Não ser capaz de sacar qualquer exemplos reais para os seres humanos, mas certamente há exemplos análogos para os seres humanos como o nome nativo para a cidade de Banguecoque .

Respondeu 07/01/2009 em 17:49
fonte usuário

votos
7

Eu não acho que há uma resposta definitiva. Afinal, algumas pessoas têm nomes que não pode sequer ser expressos em UTF-16 ...

Príncipe símbolo

Há algumas pessoas estranhas lá fora, que vai dar aos seus filhos o mais louco de nomes, inclusive colocando na pontuação estranho, acentos que não existem em seu próprio idioma, etc.

No entanto, você pode colocar restrições arbitrárias à sua base de dados. Se você quiser você pode insistir em 7 nomes bit ASCII. É um pouco rude com os usuários, mas eles vão viver com ela. Ele certamente torna a pesquisa mais fácil.

a filha do meu colega é nomeado Amélie. Mas até mesmo alguns (não todos!) Oficiais sites do governo britânico ( "Por favor, digite o nome exatamente como mostrado na certidão de nascimento") não aceitará a unicode, então ele tem que usar 'Amelie' em vez.

Respondeu 07/01/2009 em 17:56
fonte usuário

votos
3

Ela realmente depende do que o app é suposto ser usado para.

Claro, em teoria, que é ótimo se você permitir que todos os scripts na terra verde de Deus para ser usado, mas se o DB também é usado pelo pessoal de apoio, eles estão indo para ser capaz de lidar com nomes no roteiro japonês, hebraico e tailandês? Você pode impressora, se ele é usado para imprimir etiquetas porte?

Você pode adicionar um campo extra "Latin Transcrição", mas IMO é realmente OK para restringi-la para caracteres ISO-8859-1 - Pessoas que não usam caracteres latinos são agora tão acostumados a ter que usar uma transcrição que eles don' t importa mais, a menos que eles são nacionalistas hardcore.

Respondeu 08/01/2009 em 01:17
fonte usuário

votos
3

Sobre a questão dos campos de nome, o ERRADO resposta é primeiro nome, inicial do meio, sobrenome, etc., por muitas razões.

  1. Muitas pessoas são conhecidos pelo seu nome do meio, e formalmente usar um primeiro nome inicial, médio, último formato de nome.

  2. Em algumas culturas, o sobrenome é o primeiro nome, eo nome dado é o último nome.

  3. Vários primeiros e / ou médio nomes dados está ficando mais comum. Como aponta @Dour alta Arch, o outro extremo é que as pessoas com apenas uma palavra em seu nome.

Em um banco de dados orientado a objetos, você iria armazenar um objeto Name com métodos para retornar um estilo de diretório ou nome de estilo assinatura; e o armazenamento de backup deve conter todos os dados que foi necessário para suportar esses métodos.

Eu ainda não vi um modelo de banco de dados relacional que melhora sobre o modelo de duas cadeias de comprimento variável para nomes de estilo diretório e assinatura de estilo.

Respondeu 07/01/2009 em 18:27
fonte usuário

votos
2

Eu estou fazendo software para escolas de condução nos EUA, por isso para mim o que mais importa o que o estado DMV de aceitar como um nome próprio em uma carteira de motorista. No meu caso, isso poderia causar problemas para permitir que nomes além do que a DMV permite que, mesmo que tais nomes eram legais porque o mesmo nome deve ser usado posteriormente para uma carteira de motorista.

De StackOverflow, eu ainda não tinha confirmado a resposta que eu precisava. E acontece que eu sei que no meu estado (Califórnia) que está usando AS400 Com software provavelmente escrito em COBOL, e ao melhor de meu conhecimento, aqueles que suportam apenas um conjunto de caracteres de 8 bits. (É EBCDIC?) Enfim ... Ugh.

Então, liguei para a Califórnia DMV ... Com certeza, seu sistema permite que AZ e espaços e absolutamente nada mais. Nem mesmo hífens são permitidos - hífens são substituídas por espaços. Na verdade, aparentemente, apenas para ser difícil, eles só usam capitais. E nomes como "O'Malley" deve ser substituído por Omalley.

Deixá-lo ao governo. Devo dizer que estou emocionado para não ser um desenvolvedor trabalhando para DMV. (Embora eu poderia realmente usar esse tipo de salário.)

Respondeu 26/10/2012 em 19:20
fonte usuário

votos
2

Qualquer personagem que pode ser representado por qualquer múltiplo de oito bits (maior que zero) é um possível caráter para o nome de uma pessoa. Comprimentos de ambos os nomes e codificações são arbitrárias, assim não há limite superior deve ser considerado.

Apenas certifique-se higienizar suas entradas de banco de dados tão pouco Bobby Drop-tabelas não fica ya.

Respondeu 07/01/2009 em 17:50
fonte usuário

votos
0

O que você faz quando você tem "o artista anteriormente conhecido como o príncipe". Esse símbolo que ele usou não é um caractere no conjunto de unicode (AFAIK).

É alguma leveza, mas, ao mesmo tempo, os nomes são um conceito bastante amplo que não se presta bem a um formato estruturado. Neste caso, algo de forma livre pode ser mais apropriado.

Respondeu 07/01/2009 em 17:55
fonte usuário

votos
0

UTF-8 deve ser bom o suficiente, na medida em campos de nome, você vai querer no mínimo um primeiro nome e sobrenome.

Respondeu 07/01/2009 em 17:47
fonte usuário

votos
-1

Dependendo da complexidade da sua estrutura de nome que eu podia ver:

  1. Primeiro nome
  2. Nome do meio / inicial Oriente
  3. Último nome
  4. Sufixo (Jr. Ir II, III, IV, etc)
  5. Prefixo (Sr., Sra, Ms., etc.)
Respondeu 07/01/2009 em 17:51
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more