Сохраните все файлы в проекте Visual Studio как UTF-8 - PullRequest
76 голосов
/ 11 ноября 2008

Интересно, возможно ли сохранить все файлы в проекте Visual Studio 2008 в определенную кодировку символов? Я получил решение со смешанными кодировками и хочу сделать их одинаковыми (UTF-8 с подписью).

Я знаю, как сохранить отдельные файлы, но как насчет всех файлов в проекте?

Ответы [ 13 ]

0 голосов
/ 08 марта 2017

адаптировал версию выше, чтобы она работала.

// important! create a utf8 encoding that explicitly writes no BOM            
var utf8nobom = new UTF8Encoding(false); 
foreach (var f in new DirectoryInfo(dir).GetFiles("*.*", SearchOption.AllDirectories))
{
    string text = File.ReadAllText(f.FullName);
    File.WriteAllText(f.FullName, text, utf8nobom);
}
0 голосов
/ 28 августа 2015

Опытные проблемы с кодированием после преобразования решения из VS2008 в VS2015. После преобразования все файлы проекта были закодированы в ANSI, но они содержали содержимое UTF8 и были повторно признаны как файлы ANSI в VS2015. Перепробовал много конверсионных тактик, но сработало только это решение.

 Encoding encoding = Encoding.Default;
 String original = String.Empty;
 foreach (var f in new DirectoryInfo(path).GetFiles("*.cs", SearchOption.AllDirectories))
 {
    using (StreamReader sr = new StreamReader(f.FullName, Encoding.Default))
    {
       original = sr.ReadToEnd();
       encoding = sr.CurrentEncoding;
       sr.Close();
    }
    if (encoding == Encoding.UTF8)
       continue;
    byte[] encBytes = encoding.GetBytes(original);
    byte[] utf8Bytes = Encoding.Convert(encoding, Encoding.UTF8, encBytes);
    var utf8Text = Encoding.UTF8.GetString(utf8Bytes);

    File.WriteAllText(f.FullName, utf8Text, Encoding.UTF8);
 }
0 голосов
/ 11 ноября 2008

Я предлагаю это предложение только в том случае, если в Visual Studio нет способа сделать это автоматически (я даже не уверен, что это сработает):

  1. Создайте в своем проекте класс с именем (или другой текст в кодировке Unicode, который заставит Visual Studio кодировать как UTF-8).
  2. Добавить «используя MyProject. 足 の 不 自由 な ハ ッ キ ン グ ;» в начало каждого файла. Вы должны быть в состоянии сделать это на всем, сделав глобальную замену «using System.Text;» с «используя System.Text; используя MyProject. 足 の 不 自由 な * ッ キ ン グ ;».
  3. Сохраните все. Вы можете получить длинную строку «Хотите сохранить X.cs, используя UTF-8?» сообщения или что-то.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...