Какая кодировка по умолчанию для System.IO.File.ReadAllText - PullRequest
7 голосов
/ 26 июля 2011

если мы не упомянем декодирование, какое декодирование они будут использовать?

Я не думаю, что это System.Text.Encoding.Default.Все работает хорошо, если я ЯВНО ставлю System.Text.Encoding.Default, но когда я живу таким пустым, все идет не так.

Так что это не работает хорошо

Dim b = System.IO.File.ReadAllText("test.txt")
System.IO.File.WriteAllText("test4.txt", b)

но этохорошо работает

Dim b = System.IO.File.ReadAllText("test.txt", System.Text.Encoding.Default)
System.IO.File.WriteAllText("test4.txt", b, System.Text.Encoding.Default)

Если мы не укажем кодировку, попытается ли vb.net выяснить кодировку из текстового файла?

И что такое System.Text.Encoding.Default?

Это система по умолчанию.Какая у меня система по умолчанию и как я могу ее изменить?

Как узнать кодировку, используемую в текстовом файле?

Если я создаю новый текстовый файл и открываю его с помощью scite, я вижу, чтокодировка является свойством кодовой страницы.Что такое свойство кодовой страницы?

Ответы [ 2 ]

3 голосов
/ 26 июля 2011

Смотрите здесь , "Этот метод пытается автоматически определить кодировку файла на основе наличия меток порядка байтов. Форматы кодирования UTF-8 и UTF-32 (как с прямым порядком байтов, так и с младшими байтамиendian) можно обнаружить. "

2 голосов
/ 24 ноября 2013

см. Также http://msdn.microsoft.com/en-us/library/ms143375(v=vs.110).aspx Этот метод использует кодировку UTF-8 без метки порядка байтов (BOM)

...