Я видел странные проблемы с файлами *.config
, объединенными через TFS и Visual Studio.
В некоторых случаях, особенно когда файл новый, теги add
в appsetting
у тегов есть странные биты в свойствах value
. Я загрузил пример здесь .
Эти биты не видны в следующих текстовых редакторах:
- Visual Studio
- Блокнот
- Блокнот ++ - пробовал в обоих кодировках (ANSI и UTF8 (с или без спецификации)), и биты не показывались ни в одном из них.
В них, похоже, все хорошо.
Однако на VIM (я только что вспомнил о его существовании сейчас, когда писал этот пост):
Это серьезная проблема: В основном в app.config
, когда сервис Windows читает его, эти значения часто сопровождают странные биты.
Например, если я пытаюсь запустить сервис Windows с этим app.config
файл
int.TryParse(ConfigurationManager.AppSettings["HorarioProcessamentoMudarFila"], out int changingHour);
Console.WriteLine(ConfigurationManager.AppSettings["HorarioProcessamentoMudarFila"])
TryParse
завершается неудачно, а Console
показывает "?? 7 ??". (обратите внимание на «7» в середине «?»).
Когда я запускаю этот код в LINQPad
File.ReadAllBytes(@"C:\temp\fileName.txt").Select((i, o) => new {
index = o,
value = i,
ansi = System.Text.Encoding.Default.GetString(new byte[] { i }),
utf8 = System.Text.Encoding.UTF8.GetString(new byte[] { i}),
t = (char)i
}).Dump();
Я вижу, что в кодировке ANSI эти биты переводятся в ‪
и ‬
, так что это какой-то разделитель управления.
Есть ли здесь известная проблема? Откуда взялись эти биты?
РЕДАКТИРОВАТЬ: Уточнил использование Notepad ++.