Есть массив байтов byte[] buffer, я считываю его в строку и преобразую в base64
string chunk = Convert.ToBase64String(buffer);
После я передаю ее в powershell-скрипт на С#, где декодирую обратно и записываю в файл эту строку
$DataDecoded = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String('Chunk'))
Invoke-Command {$using:DataDecoded | Add-Content -Path C:\Test\Script1.ps1 -NoNewLine} -ComputerName " + configuration.Ip + @" -Credential $Cred
В итоге таких циклов может быть несколько пока копирую файл кусками, и на выходе получаю файл где в самом начале первой строки стоит знак вопроса '?' Больше нигде нет, если меняю кодировку в строке на ASCII то появляется три знака вопроса '???'
Я так понимаю, это BOM. Мне конечно нужен файл без этих знаков вопроса...возможно как-то его убрать? я уже перепробовал все варианты с этими кодировками
BOM (byte order mark) существует в файле. Вот и нужно решать проблему при чтении из файла!
Наверняка вы читаете массив байтов из файла следующим образом:
var bytes = File.ReadAllBytes(path);
Естественно, если в файле присутствует BOM, то эти байты попадают в массив.
Поэтому прочитайте данные из файла именно как текст, при этом BOM будет устранена. Далее из текста получите байты в нужной кодировке.
var text = File.ReadAllText(path);
var bytes = Encoding.UTF8.GetBytes(text);
Например так:
if (String1.StartsWith(Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble()), StringComparison.Ordinal)) {
String2 = String1.Remove(0, Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble()).Length);
}
Можно в лоб, по проще:
String1.Trim(new char[]{'\uFEFF'});
или так чтоб ещё убрать пробел между BOM и текстом:
String1.Trim(new char[]{'\uFEFF','\u200B'});
Я удалил символы отвечающие за BOM, только уже с base64 конвертированной строки. У меня получилось вот так:
fileChunk = fileChunk.Replace("77u/", "");
У Шилдта в книге написано: "В C# отсутствует автоматическое преобразование символьных значений в целочисленные и обратно"Подскажите, пожалуйста,...
У меня такое заданиеВ момент регистрации пользователю добавляется роль
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable
Хотел попробовать написать программу по правилам паттерна MVVMФактически я никогда не работал с ним