diff --git a/code/Meerkat.NameParser.Test/Meerkat.NameParser.Test.csproj b/code/Meerkat.NameParser.Test/Meerkat.NameParser.Test.csproj index 5fddb10..f84021a 100644 --- a/code/Meerkat.NameParser.Test/Meerkat.NameParser.Test.csproj +++ b/code/Meerkat.NameParser.Test/Meerkat.NameParser.Test.csproj @@ -1,4 +1,4 @@ - + net471 Meerkat.Test @@ -7,9 +7,9 @@ $(OutputPath) - - - + + + diff --git a/code/Meerkat.NameParser.Test/Party/Naming/PersonNameTest.cs b/code/Meerkat.NameParser.Test/Party/Naming/PersonNameTest.cs index 9fb4259..e53eed5 100644 --- a/code/Meerkat.NameParser.Test/Party/Naming/PersonNameTest.cs +++ b/code/Meerkat.NameParser.Test/Party/Naming/PersonNameTest.cs @@ -283,6 +283,12 @@ public void ForenameTitleII() ParseName("Richard The Lionheart", envelope: "Richard The Lionheart", title: "The Lionheart", forename: "Richard"); } + [Test] + public void NonAsciiCharacters() + { + ParseName("Øivænd Håøy", envelope: "Øivænd Håøy", forename: "Øivænd", surname: "Håøy"); + } + private void ParseName(string value, string format = "", string envelope = "", string title = "", string forename = "", string prefix = "", string surname = "", string suffix = "") { var parser = format == "STF" ? ParserFactory.StandardPersonParser(true) : ParserFactory.StandardPersonParser(); diff --git a/code/Meerkat.NameParser/Meerkat.NameParser.csproj b/code/Meerkat.NameParser/Meerkat.NameParser.csproj index 854c435..8c75887 100644 --- a/code/Meerkat.NameParser/Meerkat.NameParser.csproj +++ b/code/Meerkat.NameParser/Meerkat.NameParser.csproj @@ -1,4 +1,4 @@ - + net452;net462;net471;net472;netstandard20 false @@ -19,9 +19,9 @@ $(OutputPath) - - - + + + TRACE;DEBUG diff --git a/code/Meerkat.NameParser/Tools/LexExtensions.cs b/code/Meerkat.NameParser/Tools/LexExtensions.cs index 0799614..ed05b0d 100644 --- a/code/Meerkat.NameParser/Tools/LexExtensions.cs +++ b/code/Meerkat.NameParser/Tools/LexExtensions.cs @@ -1,4 +1,5 @@ -using System.Linq; +using System.Globalization; +using System.Linq; namespace Meerkat.Tools { @@ -31,7 +32,8 @@ public static bool IsDigit(this int value) public static bool IsAlpha(this int value) { - return value.InLexCharRange(LexChar.A, LexChar.Z) || value.InLexCharRange(LexChar.Alower, LexChar.Zlower); + var category = CharUnicodeInfo.GetUnicodeCategory((char)value); + return category == UnicodeCategory.LowercaseLetter || category == UnicodeCategory.UppercaseLetter; } public static bool IsAlphaNumeric(this int value)