ما هي جميع الأحرف المسموح بها على أسماء الناس ؟ [مغلقة]

StackOverflow https://stackoverflow.com/questions/421046

سؤال

هناك معيار A-Z, A-z الشخصيات ، ولكن أيضا هناك شرط ، م شرطات, يقتبس, الخ.

بالإضافة إلى, هناك كل من الأحرف الدولية ، مثل علامات تغير في الصوت ، الخ.

لذا الإنكليزية النظام القائم على ما هو كامل ؟ ماذا عن مجموعات لغات أخرى ؟ ماذا عن UTF8 ، UTF16 ، وما إلى ذلك ؟

مكافأة السؤال:كم اسم الحقول مطلوبة ما هي أطوال الحد الأقصى?

تحرير: هناك بالتأكيد اثنين من أنواع مختلفة من الشخصيات المشاركة في أسماء الناس ، تلك التي هناك كجزء من سياق ، وتلك التي هناك لأسباب هيكلية.أنا لا أريد أن يحد أو يتعارض مع سياق الشخصيات, ولكن أنا بحاجة إلى التعامل مع الهيكلية منها.

على سبيل المثال, كان اسم الدخول الذي كان مفصولة م اندفاعة ، ولكن كان من الصعب أن نميز أن من ناقص حرف.لجعل النظام أسهل للبحث ، أريد أن تأخذ كل خمسة أنواع مختلفة من شرطات ، ورسم خريطة لها على واحد شخصية فريدة من نوعها (ناقص) ، وبهذه الطريقة فإن الباحث لا يحتاج إلى أن تعرف على وجه التحديد أي رمز كان في البداية دخلت.

المشكلة موجودة شرطات, ربما ونقلت كذلك ، ولكن أيضا كم من الرموز ؟

هل كانت مفيدة؟

المحلول

هناك مقالة جيدة من قبل W3C يسمى الأسماء الشخصية في جميع أنحاء العالم هذا ما يفسر المشاكل (و الحلول الممكنة) جيد جدا (كان في الأصل جزئين بلوق وظيفة من قبل ريتشارد إيشيدا: الجزء 1 و الجزء 2)

شخصيا أود أن أقول:دعم كل للطباعة Unicode-حرف و أن تكون آمنة توفر فقط حقل واحد "اسم" الذي يحتوي على كامل مهيأ اسم.بهذه الطريقة يمكنك تخزين كل شكل من اسم.قد تحتاج أكثر تنظيما التخزين, لكن لا تتوقع أن تكون قادرة على تخزين كل مجموعة واحد في شكل منظم ، كما أن هناك ببساطة الكثير من مختلفة منها.

نصائح أخرى

القائمة البيضاء الشخصيات التي يمكن أن تظهر في اسم الشخص هو طريقة خاطئة, إذا كنت تسألني.بالتأكيد, [A-Za-z] عادلة نقطة البداية ، ولكن كما قلت أنت تحصل مشاكل مع "الأوروبي" أسماء.لذا خريطة كل علامات تغير في الصوت, circumflexes وأولئك.ماذا عن أسماء صينية ؟ اليابانية ؟ الهندي ؟ اللغة العبرية ؟ أنت تدخل المعركة ضد توربينات الرياح.

إذا كنت يجب على الاطلاق تحقق من صحة اسم شخص ما, أقترح القيام متواضعة القائمة السوداء من بعض الشخصيات.الأقواس الرياضية الشخصيات, بعض علامات الترقيم و هذه قد تكون آمنة إلى تجاهل.ولكن سأكون حذرا, إذا كنت أنت.

قد يكون من الأفضل أن تقبل كل ما يأتي في.UTF-16 يجب أن يكون اليوم مبالغة مجموعة الأحرف التي ينبغي أن تكون كافية لبعض السنوات القادمة.

تحرير: أما عن سؤالك عن اسم الطول و كمية من أسماء.إذا كنت تريد حقا الأشخاص كتابة حقيقية وكاملة أسماء أظن مضمونة الإجابة على كل هذه الأسئلة ستكون "بلا حدود".عدم التمكن من سوط أي أمثلة حقيقية من أجل البشر ، ولكن بالتأكيد هناك أمثلة مشابهة على البشر الاسم الأصلي لمدينة بانكوك.

أنا لا أعتقد أن هناك إجابة شافية.بعد كل شيء, بعض الناس لديهم الأسماء التي لا يمكن التعبير عنها في UTF-16...

Prince symbol

هناك بعض الغريب من الناس هناك الذين سوف تعطي أطفالهم جنونا من الأسماء ، بما في ذلك وضع غريب الترقيم لهجات التي لا توجد في لغتهم الخاصة ، إلخ.

ومع ذلك, يمكنك وضع القيود التعسفية على قاعدة البيانات الخاصة بك.إذا كنت ترغب يمكنك الإصرار على 7 بت ASCII الأسماء.انها قليلا وقحا المستخدمين ، ولكنها سوف يعيش معها.هذا بالتأكيد يجعل البحث أسهل.

زميلي ابنة تدعى أميلي.ولكن حتى بعض (وليس كل!) مسؤول في الحكومة البريطانية المواقع على شبكة الإنترنت ("من فضلك أدخل الاسم بالضبط كما هو مبين في شهادة الميلاد") لن تقبل unicode ، لذلك عليه أن استخدام 'اميلي' بدلا من ذلك.

أي الحرف التي يمكن أن تكون ممثلة من قبل أي متعددة من ثمانية بتات (أكبر من الصفر) هو ممكن حرف اسم الشخص.أطوال كل الأسماء و ترميزات تعسفية ، لذلك لا الحد الأعلى ينبغي النظر فيها.

فقط تأكد من تطهير قاعدة البيانات الخاصة بك المدخلات القليل جدا بوبي إسقاط الجداول لا يحصل لك.

على مسألة اسم الحقول ، الخطأ الجواب هو الاسم الأول, الأوسط, الاسم الأخير, الخ.لأسباب عديدة.

  1. كثير من الناس يعرف اسمه الأوسط ، رسميا استخدام الأولية الأولى, الأوسط والاسم الأخير الشكل.

  2. في بعض الثقافات ، واللقب هو الاسم الأول الاسم الأخير اسم.

  3. متعددة أول أو منتصف الأسماء هو الحصول على أكثر شيوعا.كما @عنيد عالية القوس يشير الطرف الآخر هو أن الناس مع كلمة واحدة فقط في الاسم.

في وجوه المنحى قاعدة البيانات التي سوف تخزن اسم الكائن مع طرق للعودة دليل على الطراز أو التوقيع على غرار اسم ؛ و تخزين النسخ تحتوي على ما كانت البيانات اللازمة لدعم تلك الأساليب.

لم نر حتى الآن نموذج قواعد البيانات العلائقية أن يحسن على نموذج اثنين من سلاسل أحرف ذات طول متغير على غرار الدليل والتوقيع على غرار أسماء.

أنها حقا يتوقف على ما يفترض التطبيق لاستخدامها.

متأكد من الناحية النظرية انه لشيء رائع إذا كنت تسمح كل سيناريو على أرض الله الخضراء المستخدمة ، ولكن إذا كان DB تستخدم أيضا من قبل موظفي الدعم ، هم ذاهبون لتكون قادرة على التعامل مع الأسماء اليابانية والعبرية والتايلاندية السيناريو ؟ يمكنك الطابعة إذا انها تستخدم لطباعة الطوابع البريدية العلامات ؟

قد إضافة حقل إضافي "النسخ اللاتينية" ، ولكن المنظمة انها حقا حسنا إلى تقييد ISO-8859-1 الشخصيات - الناس الذين لا يستخدمون الأحرف اللاتينية هي الآن معتادين على الحاجة إلى استخدام النسخ أنها لا تمانع في ذلك بعد الآن, إلا أنهم المتشددين القوميين.

أنا صنع برامج مدارس تعليم قيادة السيارات في الولايات المتحدة الأمريكية, بالنسبة لي ما يهم أكثر ما الدولة DMV هو قبول الاسم الصحيح على رخصة قيادة.في حالتي سوف يسبب مشاكل للسماح أسماء أبعد ما DMV يسمح ، حتى لو كانت هذه الأسماء القانونية لأن نفس الاسم يجب أن تستخدم لاحقا للحصول على رخصة قيادة.

من ستاكوفيرفلوو, لم أكد الإجابة أنا في حاجة.وأنا أعرف أن في ولاية (كاليفورنيا) أنهم يستخدمون AS400 مع البرامج ربما كتب في COBOL, و على حد علمي هذه فقط دعم 8 بت مجموعة الأحرف.(هو EBCDIC?) على أي حال...آآخ.

لذا اتصلت كاليفورنيا DMV...والمؤكد أن النظام يسمح A-Z و المساحات ولا شيء على الإطلاق.حتى لا الواصلات مسموح -- الواصلات يتم استبدال المساحات.في الواقع, على ما يبدو لمجرد أن يكون من الصعب ، إلا أنها تستخدم العواصم.وأسماء مثل "أومالي" يجب أن يتم استبداله مع OMALLEY.

ترك الأمر إلى الحكومة.يجب أن أقول أنا سعيد جدا أن لا يكون مطور يعمل DMV.(على الرغم من أنني حقا يمكن استخدام هذا النوع من الراتب.)

UTF-8 يجب أن تكون جيدة بما فيه الكفاية اسم الحقول ، سوف تحتاج في الحد الأدنى من الاسم الأول والأخير.

ماذا تفعل عندما يكون لديك "الفنان المعروف سابقا باسم الأمير".هذا الرمز اعتاد ليست شخصية في يونيكود مجموعة (AFAIK).

انها بعض الهزل ، ولكن في نفس الوقت, أسماء بالأحرى مفهوم واسع لا تصلح جيدا إلى شكل منظم.في هذه الحالة شيئا شكل حر قد يكون أنسب.

اعتمادا على تعقيد اسمك هيكل أرى:

  1. الاسم الأول
  2. الأوسط/الاسم الأوسط
  3. الاسم الأخير
  4. لاحقة (الابنالأبالثاني ، الثالث ، الرابع ، إلخ.)
  5. بادئة (السيد, السيدة, السيدة, الخ.)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top