Я делаю основной импорт/экспорт CSV в C#. Большинство из них действительно простые и простые, у нас есть только одна специальность.Создать строку списка на основе возможности замены
В значениях, которые мы импортируем/экспортируем, мы имеем некоторые значения специальных значений, которые не являются значениями ASCII. Чтобы облегчить работу наших конечных пользователей, клиент решил преобразовать некоторые значения в некоторые другие значения и сделать наоборот при импорте.
Некоторые примеры
Value in our application | ValueS that must be accepted on parsing
-----------------------------------------------------------------------
³ | 3, ^3, **3
μ | u
₃ | 3
⁹ | 9
° | deg
φ | phi
Для экспорта, это легко, мы заменим соответствующий символ, первый на второй колонке.
Но для синтаксического анализа это сложнее, и я не вижу простого способа получить все возможные значения для импорта?
Один пример:
H³ 3° (asd)₃
бы быть экспортированы в качестве
H3 3deg (asd)3
Итак, чтобы правильно разобрать это, у меня есть, чтобы получить все возможности:
H3 3deg (asd)3
// Это могут быть действительными значениямиH³ 3deg (asd)3
H₃ 3deg (asd)3
H3 ³deg (asd)3
- ....
Что бы хороший способ сделать это?
Во время экспорта вы можете заменить что-нибудь, что не ASCII с чем-то вроде '{unicode: 12311}'. – Sinatr
Если вы импортируете H3, это будет 'H³' или' H₃'? или 'H3'? В вашей кодировке отсутствует информация, это кодирование с потерями, которое кодирует несколько входов на один и тот же вывод. Таким образом, это не обратимо. Вам нужно найти другой способ кодировать это, чтобы различать входы. –
Кроме того, неясно, что вы здесь задаете. Вы спрашиваете, как правильно декодировать (невозможно) или что является лучшим (отсутствует информация, например, вероятности и разрешено ли неправильно декодировать)? –