当前位置:  开发笔记 > 前端 > 正文

人名的所有允许字符是什么?

如何解决《人名的所有允许字符是什么?》经验,为你挑选了3个好方法。

有标准的AZ,az字符,但也有连字符,em破折号,引号等.

此外,还有所有的国际角色,如变形金刚等.

那么,对于基于英语的系统,完整的设置是什么?那些其他语言的集合呢?UTF8,UTF16等怎么样?

奖金问题:需要多少名称字段,以及它们的最大长度是多少?

编辑:人名中肯定有两种不同类型的字符,那些作为上下文的一部分,以及那些由于结构原因而存在的字符.我不想限制或干扰上下文字符,但我确实需要处理结构上的字符.

例如,我有一个名字,它被一个em破折号分开,但是很难将它与减号区分开来.为了使系统更容易搜索,我想采用所有五种不同类型的破折号,并将它们映射到一个唯一字符(减号),这样搜索者就不需要具体知道最初输入的符号.

破折号也存在问题,可能还有引号,还有多少其他符号?



1> Joachim Saue..:

W3C的好文章称世界各地的个人名称很好地 解释了问题(以及可能的解决方案)(最初由Richard Ishida 撰写的两部分博客文章:第1 部分和第2部分)

我个人会说:支持每个可打印的Unicode字符并且安全地只提供包含完整格式化名称的单个字段"名称".通过这种方式,您可以存储几乎所有形式的名称.您可能需要更结构化的存储,但是不要期望能够以结构化形式存储每个组合,因为存在太多不同的存储.


@Paul:也许是这样,当你只处理一种文化和语言时.但是当你进入不同的名字顺序,不同数量的名字等时,人类很难追随所有的可能性,更不用说程序了,所以让用户处理如何呈现他自己的名字.

2> Henrik Paul..:

如果你问我,那些可能出现在某个人姓名中的字符是错误的.当然,[A-Za-z]是一个公平的起点,但正如你所说,你会遇到"欧洲"名字的问题.所以你映射了所有的变音符号,回音符号和那些符号.中国名字怎么样?日本?印度?希伯来语?你正在与风力涡轮机进行战斗.

如果你绝对必须检查某人姓名的有效性,我建议你做一些适当的黑名单.大括号,数学字符,一些标点符号等都可以安全地忽略.但如果我是你,我会保持谨慎.

最好只接受所有内容.UTF-16应该是今天的过度杀伤字符集,在未来几年应该足够了.

编辑:关于名称长度和名称数量的问题.如果你真的希望人们写出真实而完整的名字,我想这两个问题的唯一万无一失的答案就是"无限".不能为人类扯出任何真实的例子,但肯定有类似的例子,人类作为曼谷市的本土名称.


但真的,为什么呢?如果我的姓氏是"von Rettig"怎么办?如果我将该姓氏编入索引,则会写成"Rettig,von".你永远不能太确定......
只是想成为一个聪明人:UTF-16不是字符集,而是Unicode集字符的编码。您实际上是指Unicode。(UTF-16所包含的字符比UTF-8还要多。)

3> slim..:

我认为没有明确的答案.毕竟,有些人的名字甚至无法用UTF-16表达......

王子的象征

那里有一些奇怪的人,他们会给孩子们最疯狂的名字,包括加入奇怪的标点符号,用他们自己的语言不存在的口音等等.

但是,您可以对数据库设置任意限制.如果你愿意,你可以坚持使用7位ASCII名称.这对用户来说有点粗鲁,但他们会忍受它.它肯定使搜索更容易.

我同事的女儿名叫Amélie.但即使是一些(并非所有!)官方英国政府网站("请输入出生证明上显示的名称")也不会接受unicode,所以他必须使用'Amelie'代替.


AFAIK(和维基百科似乎同意这一点)这个符号从来都不是Prince的合法名称,而只是舞台名称;-)
在WåkonWium之后,为了给所述系统带来问题(为了纪念他的CSS工作),我已经翘曲了一个孩子的名字
推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有