Новая линия:
string escapedNewline = @"\\n";
string cleanupNewLine = escapedNewline.Replace(@"\\n", Environment.NewLine);
ИЛИ
string cleanupNewLine = escapedNewline.Replace(@"\\n", "\n");
Tab:
string escapedTab = @"\\t";
string cleanupTab= escapedTab.Replace(@"\\t", "\t");
Обратите внимание на отсутствие символьной строки (т.е. я не использовал @ "\ т", потому что который не будет представлять собой вкладку)
В качестве альтернативы вы можете рассмотреть Regular Expressions, если вам нужно заменить ряд различных шаблонов строк.
Вы, вероятно, следует написать функцию полезности для инкапсуляции общего поведения выше для всех возможных Escape Sequences
Тогда вы бы написать несколько Unit Tests для покрытия каждого из случаев вы можете думать.
Когда вы сталкиваетесь с любыми ошибками, вы добавляете дополнительные модульные тесты для покрытия этих случаев.
UPDATE
Вы могли бы представлять собой вкладку в XML с помощью специальной последовательности символов:
	
see this article
This article относится к SQL Server, но также может иметь отношение к C# также?
Чтобы быть абсолютно уверенным, вы можете попробовать создать строку с вкладкой в ней и поместить ее в некоторый XML (программно) и с помощью XmlSerializer сериализовать это в файл, чтобы увидеть, что такое вывод, тогда вы можете быть уверены что это будет верно «туда-обратно», строка с вкладкой все еще в ней.
Класс, в котором вы получаете строку, выполняет что-то нестандартное, поэтому символы больше не являются управляющими символами, они были преобразованы (без изменений) в более длинную литеральную строку. Вам просто нужно иметь специальный случай, чтобы справиться с ними. – rohancragg
это выглядит знакомо !: http://www.infoqu.com/dev/c-programming/weeding-out-control-characters-in-c-30095-1/ – rohancragg
Может быть, это глупый вопрос, но вы смотрите на значение в окне часов? Окно часов добавит дополнительные \, так что вы уверены, что строка «\\ t»? – Geoff