aboutsummaryrefslogtreecommitdiff
path: root/src/Jellyfin.Extensions/StringExtensions.cs
diff options
context:
space:
mode:
authorClaus Vium <cvium@users.noreply.github.com>2022-12-29 10:16:27 +0100
committerGitHub <noreply@github.com>2022-12-29 10:16:27 +0100
commitd7992bda674573834e49d5e2b2112bdb42c72ffc (patch)
treea09a4cf123776bd9abddb0e7b1b2f18df07c5b7e /src/Jellyfin.Extensions/StringExtensions.cs
parent8de052646ca0a852dcad03069a1904433f909653 (diff)
parent7c77ba529c057b227b1597c408192334eb78aff4 (diff)
Merge pull request #8964 from Bond-009/diacritics
Use Diacritics.NET
Diffstat (limited to 'src/Jellyfin.Extensions/StringExtensions.cs')
-rw-r--r--src/Jellyfin.Extensions/StringExtensions.cs24
1 files changed, 4 insertions, 20 deletions
diff --git a/src/Jellyfin.Extensions/StringExtensions.cs b/src/Jellyfin.Extensions/StringExtensions.cs
index b19be071b..f30b63945 100644
--- a/src/Jellyfin.Extensions/StringExtensions.cs
+++ b/src/Jellyfin.Extensions/StringExtensions.cs
@@ -20,23 +20,8 @@ namespace Jellyfin.Extensions
/// <param name="text">The string to act on.</param>
/// <returns>The string without diacritics character.</returns>
public static string RemoveDiacritics(this string text)
- {
- string withDiactritics = _nonConformingUnicode
- .Replace(text, string.Empty)
- .Normalize(NormalizationForm.FormD);
-
- var withoutDiactritics = new StringBuilder();
- foreach (char c in withDiactritics)
- {
- UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(c);
- if (uc != UnicodeCategory.NonSpacingMark)
- {
- withoutDiactritics.Append(c);
- }
- }
-
- return withoutDiactritics.ToString().Normalize(NormalizationForm.FormC);
- }
+ => Diacritics.Extensions.StringExtensions.RemoveDiacritics(
+ _nonConformingUnicode.Replace(text, string.Empty));
/// <summary>
/// Checks whether or not the specified string has diacritics in it.
@@ -44,9 +29,8 @@ namespace Jellyfin.Extensions
/// <param name="text">The string to check.</param>
/// <returns>True if the string has diacritics, false otherwise.</returns>
public static bool HasDiacritics(this string text)
- {
- return !string.Equals(text, text.RemoveDiacritics(), StringComparison.Ordinal);
- }
+ => Diacritics.Extensions.StringExtensions.HasDiacritics(text)
+ || _nonConformingUnicode.IsMatch(text);
/// <summary>
/// Counts the number of occurrences of [needle] in the string.