Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- string s1 = "hello";
- string s2 = "héllo";
- s1.Equals(s2, StringComparison.InvariantCultureIgnoreCase);
- s1.Equals(s2, StringComparison.OrdinalIgnoreCase);
- static string RemoveDiacritics(string text)
- {
- string formD = text.Normalize(NormalizationForm.FormD);
- StringBuilder sb = new StringBuilder();
- foreach (char ch in formD)
- {
- UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(ch);
- if (uc != UnicodeCategory.NonSpacingMark)
- {
- sb.Append(ch);
- }
- }
- return sb.ToString().Normalize(NormalizationForm.FormC);
- }
- Debug.Assert("hello"==RemoveDiacritics("héllo"));
- private static bool CompareIgnoreAccents(string s1, string s2)
- {
- return string.Compare(
- RemoveAccents(s1), RemoveAccents(s2), StringComparison.InvariantCultureIgnoreCase) == 0;
- }
- private static string RemoveAccents(string s)
- {
- Encoding destEncoding = Encoding.GetEncoding("iso-8859-8");
- return destEncoding.GetString(
- Encoding.Convert(Encoding.UTF8, destEncoding, Encoding.UTF8.GetBytes(s)));
- }
- public static string RemoveAccents(this string s)
- {
- Encoding destEncoding = Encoding.GetEncoding("iso-8859-8");
- return destEncoding.GetString(
- Encoding.Convert(Encoding.UTF8, destEncoding, Encoding.UTF8.GetBytes(s)));
- }
- if(string.Compare(s1.RemoveAccents(), s2.RemoveAccents(), true) == 0) {
- ...
- string s1 = "hello";
- string s2 = "héllo";
- if (String.Compare(s1, s2, CultureInfo.CurrentCulture, CompareOptions.IgnoreNonSpace) == 0)
- {
- // both strings are equal
- }
- using System;
- using System.Globalization;
- class Sample {
- public static void Main() {
- String str1 = "change";
- String str2 = "dollar";
- String relation = null;
- relation = symbol( String.Compare(str1, str2, false, new CultureInfo("en-US")) );
- Console.WriteLine("For en-US: {0} {1} {2}", str1, relation, str2);
- relation = symbol( String.Compare(str1, str2, false, new CultureInfo("cs-CZ")) );
- Console.WriteLine("For cs-CZ: {0} {1} {2}", str1, relation, str2);
- }
- private static String symbol(int r) {
- String s = "=";
- if (r < 0) s = "<";
- else if (r > 0) s = ">";
- return s;
- }
- }
- /*
- This example produces the following results.
- For en-US: change < dollar
- For cs-CZ: change > dollar
- */
Add Comment
Please, Sign In to add comment