У меня есть приложение, написанное на С#, которое делает много сравнения строк. Строки вытягиваются из разных источников (включая пользовательский ввод) и затем сравниваются. Однако я сталкиваюсь с проблемами при сравнении пространства "32" с неразрывным пространством "160". Для пользователя они выглядят одинаково и поэтому ожидают матча. Но когда приложение выполняет сравнение, совпадения нет.
Каков наилучший способ сделать это? Должен ли я идти ко всем частям кода, которые выполняют сравнение строк и ручно нормализуют неразрывные пробелы в пространствах? Предлагает ли .NET что-нибудь, чтобы помочь с этим? (Я пробовал все варианты сравнения, но никто не помогает.)
Было высказано предположение, что я нормализую строки при получении, а затем пусть метод сравнения строк просто сравнивает нормированные строки. Я не уверен, что это было бы прямолинейно, потому что в первую очередь это нормализованная строка. Что я тоже нормализую? Конечно, на данный момент я могу преобразовать неразрывные пробелы в разбивающие пространства. Но что еще может появиться? Может ли быть очень много из этих правил? Возможно, они даже противоречат друг другу. (В одном случае я хочу использовать правило, а в другом - нет.)