Файл не отображается в редакторе так как является двоичным visual studio code
Редактирование таких ресурсов, как диалоговые окна, изображения или меню в двоичном редакторе , опасно. Неверное редактирование может повредить ресурс, сделав его нечитаемым в соответствующем специализированном редакторе.
Двоичный редактор позволяет изменять любой ресурс на двоичном уровне в шестнадцатеричном или формате ASCII. Для поиска строк ASCII или шестнадцатеричных байтов можно также использовать команду "Найти" . Используйте двоичный редактор только в том случае, если необходимо просмотреть или внести незначительные изменения в пользовательские ресурсы или типы ресурсов, которые не поддерживаются средой Visual Studio. Двоичный редактор недоступен в выпусках Express.
Чтобы открыть двоичный редактор в новом файле, перейдите в меню FileNewFile> >, выберите тип файла, который требуется изменить, а затем щелкните стрелку раскрывающегося списка рядом с кнопкой "Открыть" и выберите "Открыть редакторWithBinary>". Раскрывающийся список в диалоговом окне "Новый файл" недоступен в Visual Studio 2019 г., но доступен в Visual Studio 2022 г.
Чтобы открыть двоичный редактор в существующем файле, перейдите в меню FileOpenFile> >, выберите файл, который нужно изменить, а затем щелкните стрелку раскрывающегося списка рядом с кнопкой "Открыть" и выберите "Открыть редакторWithBinary>".
Двоичные данные для диалогового окна, отображаемого в двоичном редакторе
В двоичном редакторе представлены только определенные значения ASCII (0x20 через 0x7E). Расширенные символы отображаются как точки в разделе значений ASCII правой панели в двоичном редакторе. Печатные символы — это значения ASCII от 32 до 126.
При использовании двоичного редактора во многих случаях можно щелкнуть правой кнопкой мыши контекстное меню команд для конкретных ресурсов. Доступные команды зависят от ресурса, на который указывает курсор. Например, если щелкнуть правой кнопкой мыши, указывая на двоичный редактор с выбранными шестнадцатеричными значениями, в контекстном меню отображаются команды "Вырезать", " Копировать" и "Вставить ".
Инструкции
Двоичный редактор позволяет выполнять следующие действия:
Открытие ресурса классического приложения Windows для редактирования в двоичном редакторе
В окне представления ресурсоввыберите файл ресурсов, который необходимо изменить.
Щелкните ресурс правой кнопкой мыши и выберите "Открыть двоичные данные".
Если вы используете окно представления ресурсов для открытия ресурса с форматом, который Visual Studio не распознает, например RCDATA или настраиваемый ресурс, ресурс автоматически открывается в двоичном редакторе.
Открытие управляемого ресурса для редактирования в двоичном редакторе
В Обозреватель решений выберите конкретный файл ресурсов, который требуется изменить.
Щелкните ресурс правой кнопкой мыши и выберите команду "Открыть с помощью".
В диалоговом окне Открыть с помощью выберите Двоичный редактор.
Редактор изображений и двоичный редактор можно использовать для работы с файлами ресурсов в управляемых проектах. Все управляемые ресурсы, которые нужно редактировать, должны быть связанными ресурсами. Редакторы ресурсов Visual Studio не поддерживают редактирование внедренных ресурсов.
Изменение ресурса
Если вы хотите использовать двоичный редактор в ресурсе, который уже редактируется в другом окне редактора, сначала закройте другое окно редактора.
Выберите байт, который требуется изменить.
Клавиша TAB перемещает фокус между шестнадцатеричными и ASCII разделами двоичного редактора. Для перемещения по ресурсу по одному экрану можно использовать клавиши PAGE UP и PAGE DOWN .
Введите новое значение.
Значение сразу же изменяется как в шестнадцатеричных разделах, так и в разделах ASCII, а фокус переместится на следующее значение в строке.
Двоичный редактор принимает изменения автоматически при закрытии редактора.
Поиск двоичных данных
Можно выполнить поиск строк ASCII или шестнадцатеричных байтов. Например, чтобы найти Hello, можно найти строку Hello или шестнадцатеричное значение 48 65 6C 6C 6C 6F.
Перейдите в меню EditFind >.
В поле "Найти что" выберите предыдущую строку поиска из раскрывающегося списка или введите нужные данные.
Выберите любой из параметров поиска и нажмите кнопку "Найти далее".
Создание настраиваемого ресурса или ресурса данных
Вы можете создать новый пользовательский или ресурс данных, поместив ресурс в отдельный файл с помощью обычного синтаксиса файла скрипта ресурсов (RC), а затем включив этот файл, щелкнув проект правой кнопкой мыши в Обозреватель решений и выбрав "Ресурс включает".
Создайте RC-файл , который содержит настраиваемый ресурс или ресурс данных.
Пользовательские данные можно ввести в RC-файл в виде строк в кавычках, заканчивающихся символом null, или как целочисленные значения в десятичном, шестнадцатеричном или восьмеричном формате.
В Обозреватель решений щелкните правой кнопкой мыши RC-файл проекта и выберите "Ресурс включает".
Проверьте синтаксис и орфографию введенных данных. Содержимое поля директив времени компиляции вставляется в файл скрипта ресурсов точно так же, как и при вводе.
Другой способ создания настраиваемого ресурса — импортировать внешний файл в качестве настраиваемого ресурса, см. статью "Практическое руководство. Управление ресурсами".
Для создания пользовательских ресурсов или ресурсов данных требуется Win32.
Я не знаю, как найти свой includePath. Я не могу давать никаких советов в vscode.
Интересно, является ли vs code правильным направлением, поскольку это кажется сложным?
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно.
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей.
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то.
Ответы 3
Это связано с тем, что в расширении отсутствует какой-либо includepath при инициализации
добавьте недостающие строки в ваш c_cpp_properties.json
Также добавьте "defines": [ "USBCON" ] в "конфигурации", чтобы последовательный класс работал с intellisense.
Для меня это было решение, которого мне не хватало . папка hardware / tools / ** на моем пути. Ваше здоровье!
Хотя в вопросе упоминается Arduino, следующие предложения применимы практически каждый раз, когда VSCode говорит вам «обновить includePath».
Что такое includePath?
includePath - это атрибут в c_cpp_settings.json , который находится в папке .vscode основной папки, которую вы открыли в VSCode с помощью File → Open Folder.
Вы можете редактировать c_cpp_settings.json напрямую, но обычно проще использовать «Графический интерфейс конфигураций C / C++». Для этого откройте палитру команд (Ctrl + Shift + P) и запустите «C / C++: Edit Configurations (UI)». Затем найдите параметр «Включить путь».
Так должен ли я возиться с includePath, когда VSCode говорит мне об этом?
Не сначала! Перед изменением пути включения, если вы еще этого не сделали, сначала установите «Путь к компилятору» так, чтобы он указывал на ваш компилятор C / C++, и установите «Режим IntelliSense», чтобы он максимально соответствовал компилятору.
Вам также может потребоваться настроить аргументы компилятора, особенно если компилятор способен генерировать код для нескольких целей, например, как 32-разрядный, так и 64-разрядный код. (Если вы не знаете, что это значит, сначала пропустите это.)
Затем в палитре команд запустите «C / C++: журнал диагностики». Выходные данные покажут вам, какой компилятор обнаружил VSCode и что он обнаружил как его встроенный путь включения и определяет препроцессор.
Затем запустите эти команды в оболочке:
Здесь я предположил, что вы используете gcc в качестве компилятора. Если нет, замените фактическое имя команды компилятора. Если ваш компилятор не является вариантом GCC (например, вы используете компилятор Microsoft cl.exe ), вам нужно будет посмотреть его документацию или Google, чтобы найти переключатели, которые печатают предопределенные макросы и включают пути (например, см. здесь для cl.exe ).
Сравните вывод вышеуказанной команды с тем, что VSCode показывает в выводе диагностики C / C++. Надеюсь, они очень похожи. Если нет, попробуйте настроить путь компилятора, режим IntelliSense или аргументы компилятора. Как только вы подобрали их как можно ближе, отрегулировав только эти три параметра, переходите к следующему шагу.
Теперь при необходимости отрегулируйте includePath.
Если все еще есть существенные различия между встроенной конфигурацией компилятора и тем, что обнаруживает VSCode, исправьте это (в пользовательском интерфейсе настроек C / C++), изменив стандартные поля Include path, Defines и C / C++. Повторно запустите команду C / C++ Log Diagnostics, чтобы увидеть результаты.
Наконец, если в вашем проекте есть файлы заголовков в местах, которые компилятор не выполняет поиск по умолчанию, то есть вам обычно нужно передать переключатели -I в командной строке компилятора, добавьте их также в путь включения. То же самое касается любых аргументов -D , которые должны быть добавлены в Defines.
Cannot edit in read-only editor.
Пожалуйста, помогите мне решить эту проблему.
похоже, вы не имеете права писать этот файл, попробуйте отредактировать его в другом редакторе.
Вы не можете вводить данные в панель вывода VS Code, поскольку она доступна только для чтения.
Ты уже нашел на него ответ @Asif?
Кстати, вам не нужно использовать F5 или CTRL F5 для запуска вашего кода, вместо этого вы можете просто использовать терминал.
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно.
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей.
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то.
Ответы 16
- Перейдите к Файл > Предпочтения > Настройки, затем
- введите: выполнить код и прокрутите вниз, пока не увидите code-runner: запустить в терминале. Там будет несколько вариантов, называемых «code-runner». В этом вы можете найти вариант, упомянутый ниже.
- просто отметьте "Запускать ли код во встроенном терминале" и
- перезапустить vscode.
Для пользователей Mac это Код > Предпочтения > Настройки.
@RameshPareek в строке поиска вверху.
Сработало как шарм - я только что искал whether to run code in integrated terminal и получил ровно один, чтобы проверить
В macOS нажмите code>preference>settings, затем введите «code-runner» в верхней строке поиска на вкладке настроек, прокрутите вниз и внимательно проверьте, найдите следующий параметр: code-runner: запустить в терминале, установите флажок .
не могу найти эту настройку
@carlo этот параметр может быть недоступен, потому что он предназначен для расширения, это не стандартный vscode. И на всякий случай запускает код, а не для отладки.
Я получил эту ошибку во время сравнения кода с предыдущей версией, и она не позволяла мне редактировать текущую версию в правом окне. Не имеет отношения к тому, что я подозреваю в проблеме OP, но это была первая тема, которая возникла для моего поиска, и ошибка была той же. так или иначе.
Моя проблема заключалась в том, что в то время конкретный файл был «постановлен» в моем исходном контроле. Похоже, это ограничивает редактирование, открывая «индексную» версию для сравнения.
Решение. Отмените постановку файла и снова откройте окно сравнения.
@Roshan Op не смог написать и получил эту ошибку. Я даже упомянул, что это не связано, но ошибка была той же, поэтому я добавил свои 2 цента. возьми это или оставь
Я привык к Resharper, где я могу искать файлы не по содержимому, а по имени файла, что позволяет быстро открывать новые файлы.
Реализована ли эта функция в Visual Studio Code и есть ли для нее ярлык?
Можно ли использовать подстановочные знаки для поиска определенного файла? Примеры файлов уценки, начинающихся с Pan как Pan * .md - Porcupine 19 мая '18 в 1:11
С помощью Перейти к файлу . которое находится в меню Перейти, или с помощью сочетания клавиш:
- В Windows Ctrl + p или Ctrl + e
- В macOS Cmd ⌘ + p
- В Linux Ctrl + p или Ctrl + e
Затем введите имя файла.
Также убедитесь, что вы можете установить свои собственные привязки клавиш и что есть шпаргалки, доступные для Windows , macOS и Linux .
это (и ctrl / cmd + p) не работает для исключенных папок, таких как node_modules. Было бы неплохо иметь возможность время от времени искать все файлы. - Sonic Soul 7 июня '16 в 23:38
Кажется, это работает только для текущей папки. Что, если я хочу выполнить поиск по всему проекту? Мои файлы редко находятся в той папке, в которой я сейчас нахожусь. - Julian 13 июня '16 в 17:23
В OSX cmd + e поиск в текущем файле, правильная привязка клавиш - cmd +, p которая открывает палитру команд, где вы можете искать файлы и многое другое - Tiago 22 дек.
Этот ответ выглядит устаревшим или неверным. Другой ответ - правильно сказать, что правильная комбинация - это cmd + p . - Ivan Yurchenko 24 янв.
На OSX для меня это cmd ⌘ + p . cmd ⌘ + e просто ищет в текущем открытом файле.
Это должен быть принятый ответ, в более поздних версиях команды были изменены. - Tyguy7 24 июля '17 в 22: 192017-07-24 22:19
Да, CTRL + P позволяет ввести имя файла и открыть его. Но он заменяет текущий открытый файл. Как я могу продолжать открывать файлы так же, как гонг, через обозреватель решений и щелкать файлы? - Mark 15 авг.
@ Отметьте, когда имя файла выделено курсивом, оно будет заменено следующим файлом, который вы откроете. Выберите «Оставить открытым» (щелкните вкладку правой кнопкой мыши) или используйте «Вид: Сохранить редактор» в палитре команд. - bronson 23 янв.
Если вы хотите видеть свои файлы в дереве проводника .
когда вы щелкаете в любом месте дерева проводника и начинаете вводить что-то на клавиатуре, ключевое слово для поиска появляется в правом верхнем углу экрана: (" module.ts ")
И когда вы наводите курсор мыши на ключевое слово, вы можете нажать « Включить фильтр по типу », чтобы отфильтровать дерево с вашим поиском!
Это был бы отличный подход, но по какой-то причине результаты ограничиваются только несколькими элементами. Например, я знаю, что у меня есть около 30 с лишним файлов с определенным именем в монорепозитории - когда я следую этим инструкциям, результаты ограничиваются 6 файлами, которые он сшивает - Jacques 14 сен '20 в 9:24
Это перестало работать у меня некоторое время назад, и я не знаю почему. Не удалось найти ни одной опции, чтобы включить или отключить его. Я что-нибудь упустил? - audioslave 29 янв в 12:07
Я использую 1.52, и он показывает только те файлы, которые были видны (не в свернутой папке) в дереве до фильтрации. @ A.Morel попробуйте свой пример еще раз, но на этот раз перед фильтром сверните папку «обеденный». Когда вы применяете фильтр, не только файл в этой папке не отображается, но и папка даже не отображается в списке. - Stephen Teodori 5 февраля в 15:43
@StephenTeodori Я думаю, что это ошибка. Когда я пошел менять настройку «Свернуть результаты», это снова сработало. - A. Morel 5 фев в 19:29
При использовании VS Code для создания и редактирования сценариев PowerShell очень важно, чтобы ваши файлы сохранялись в правильной кодировке символов.
Что такое кодировка и почему она важна?
VS Code управляет интерфейсом ввода строки символов в буфер пользователем и чтения-записи блоков байтов в файловой системе. При сохранении файла в VS Code используется кодирование текста для определения того, какие байты получит каждый символ. Подробные сведения см. в статье О шифровании символов.
Аналогичным образом, когда оболочка PowerShell запускает скрипт, ей необходимо преобразовать байты из файла в символы для преобразования файла в программу PowerShell. Так как VS Code записывает файл, а PowerShell считывает файл, этим средствам необходимо использовать одну и ту же систему кодировки. Этот процесс синтаксического анализа скрипта PowerShell идет так: байты -> символы -> лексемы -> дерево абстрактного синтаксиса -> выполнение.
И VS Code, и PowerShell устанавливаются с подходящей конфигурацией кодировки по умолчанию. Тем не менее кодировка по умолчанию, используемая PowerShell, была изменена с выпуском PowerShell 6. Чтобы избежать проблем с PowerShell и расширениями PowerShell в VS Code, необходимо настроить параметры VS Code и PowerShell должным образом.
Распространенные причины проблемы с кодировкой
Проблемы с кодировкой возникают, если кодировка VS Code в целом или вашего файла скрипта не совпадает с кодировкой, ожидаемой в PowerShell. В PowerShell нет способа автоматически определить кодировку файла.
Проблемы с кодировкой более вероятны при использовании символов не из 7-разрядной кодировки ASCII. Пример:
- Расширенные небуквенные символы, такие как длинное тире ( — ), неразрывный пробел ( ) или левая двойная кавычка ( " ).
- Латинские символы с диакритикой ( É , ü )
- Нелатинские символы, такие как кириллица ( Д , Ц )
- Символы иероглифического письма ( 本 , 화 , が ).
Распространенные причины проблем с кодировкой:
- Параметры кодировок по умолчанию VS Code и PowerShell не были изменены. В версиях до PowerShell 5.1 (включительно) кодировка по умолчанию отличается от используемой в VS Code.
- Открыт другой редактор, и файл перезаписан в новой кодировке. Это часто происходит с интегрированной средой сценариев.
- Файл возвращается в систему управления версиями в кодировке, отличающейся от той, которая ожидается в VS Code или PowerShell. Это может произойти, когда участники совместной работы используют редакторы с различными конфигурациями кодировок.
Как определить наличие проблемы с кодировкой
Часто ошибки кодирования в скриптах представляются как ошибки синтаксического анализа. Если вы видите странные последовательности символов в скрипте, это может быть проблемой. В примере ниже тире ( – ) отображается в виде символов â€" :
Эта проблема возникает, так как VS Code кодирует символ – в UTF-8 как байты 0xE2 0x80 0x93 . Если эти байты декодируются в кодировке Windows-1252, они интерпретируются как символы â€" .
Некоторые странные последовательности символов, которые можно видеть:
- â€" вместо – .
- â€" вместо — .
- Ä2 вместо Ä .
- Â вместо (неразрывный пробел);
- é вместо é .
Этот удобный справочник перечисляет распространенные шаблоны, которые указывают на проблему между кодировками UTF-8 и Windows-1252.
Взаимодействие расширения PowerShell для VS Code с кодировками
Расширение PowerShell взаимодействует со скриптами несколькими способами:
- При изменении скриптов в VS Code содержимое отправляется из VS Code в расширение. Протокол языкового сервера требует, чтобы это содержимое передавалось в UTF-8. Таким образом, расширение не сможет получить неправильную кодировку.
- При выполнении скриптов в интегрированной консоли они считываются оболочкой PowerShell непосредственно из файла. Если кодировка PowerShell отличается от кодировки VS Code, может произойти сбой.
- Когда скрипт, который открыт в VS Code, ссылается на другой скрипт, который не был открыт в VS Code, расширение загружает содержимое второго скрипта из файловой системы. Расширение PowerShell по умолчанию использует кодировку UTF-8, но при этом применяет обнаружение метки порядка байтов (BOM), чтобы выбрать правильную кодировку.
Проблема возникает при предположении кодировки, не использующей BOM (такой как UTF-8 без метки порядка байтов или Windows-1252). Расширение PowerShell по умолчанию использует UTF-8. Расширение не может изменить параметры кодировки в VS Code. Дополнительные сведения см. в разделе Проблема № 824.
Выбор подходящей кодировки
Различные системы и приложения могут использовать различные кодировки:
- В .NET Standard, в Интернете и в среде Linux теперь в основном используется кодировка UTF-8.
- Во многих приложениях .NET Framework используется UTF-16. По историческим причинам ее иногда называют "Юникод"; сейчас этот термин относится к более широкому стандарту, охватывающему UTF-8 и UTF-16.
- В Windows многие приложения, которые были созданы еще до распространения Юникода, по-прежнему могут по умолчанию использовать Windows-1252.
Кодировки Юникода также используют понятие метки порядка следования байтов (BOM). BOM ставится в начале текста, чтобы декодер мог определить, какая кодировка используется в тексте. Для многобайтовых кодировок BOM также указывает порядок следования байтов кодировки. BOM представляются байтами, которые редко встречаются в тексте в Юникоде. Это позволяет сделать обоснованное предположение, что текст записан в Юникоде, если присутствует метка BOM.
BOM не являются обязательными; в мире Linux они не так популярны, поскольку во всех прочих местах используется надежное соглашение UTF-8. Большинство приложений Linux предполагают, что текстовый ввод кодируется в UTF-8. Хотя многие приложения Linux могут распознавать и правильно обрабатывать BOM, некоторые этого не делают, что приводит к появлению артефактов в тексте, открываемом с помощью этих приложений.
Таким образом:
- Если вы работаете в основном с приложениями Windows и Windows PowerShell, следует предпочтительно использовать такие кодировки, как UTF-8 с BOM или UTF-16.
- Если вы работаете на разных платформах, следует отдавать предпочтение UTF-8 с BOM.
- Если вы работаете главным образом в контексте Linux, следует отдавать предпочтение UTF-8 без BOM.
- Windows-1252 и latin-1 — устаревшие кодировки, которых по возможности следует избегать. Тем не менее некоторые приложения предыдущих версий в Windows зависят от их.
- Также стоит отметить, что подписывание скриптов зависит от кодировки, то есть изменение кодировки в подписанном скрипте потребует повторного подписывания.
Настройка VS Code
Кодировка VS Code по умолчанию — UTF-8 без метки порядка байтов.
Чтобы задать Кодировка в VS Code, перейдите к параметрам VS Code ( CTRL + , ) и задайте параметр "files.encoding" :
Возможны следующие значения:
- utf8 : [UTF-8] без метки порядка байтов
- utf8bom : [UTF-8] с меткой порядка байтов
- utf16le : [UTF-16] с прямым порядком байтов
- utf16be : [UTF-16] с обратным порядком байтов
- windows1252 : [Windows-1252]
Должен отобразиться раскрывающийся список представления графического пользовательского интерфейса или дополнение в представлении JSON.
Чтобы обеспечить автоматическое определение кодировки, если это возможно, можно также добавить следующее:
Если вы не хотите, чтобы эти параметры влияли на все типы файлов, в VS Code можно задавать конфигурации для каждого языка отдельно. Создать параметр для конкретного языка можно, поместив параметры в поле [] . Пример:
Вы также можете установить средство отслеживания Gremlins для Visual Studio Code. Это расширение раскрывает определенные символы Юникода, которые могут быть легко повреждены из-за своей невидимости или схожести с другими обычными символами.
Настройка PowerShell
В PowerShell кодировка по умолчанию зависит от версии:
- В PowerShell 6+ кодировка по умолчанию на всех платформах — UTF-8 без метки порядка байтов.
- В Windows PowerShell кодировка по умолчанию — обычно Windows-1252, расширение latin-1, которое также называется ISO 8859-1.
В PowerShell 5 + можно определить кодировку по умолчанию так:
Следующий скрипт может использоваться для определения кодировки, которую ваш сеанс PowerShell выводит для скрипта, где нет метки порядка байтов.
Можно настроить PowerShell так, чтобы использовать заданную кодировку в более общем виде с помощью параметров профиля. См. следующие статьи:
Заставить PowerShell использовать конкретную кодировку для входных данных невозможно. В PowerShell 5.1 и более ранних версий в Windows с языковым стандартом en-US по умолчанию используется кодировка Windows-1252, если отсутствует метка порядка байтов. Другие параметры языкового стандарта могут использовать другую кодировку. Для обеспечения совместимости лучше сохранять скрипты в Юникоде с меткой порядка байтов.
Любые другие имеющиеся у вас инструменты для работы со скриптами PowerShell могут зависеть от выбранных параметров кодировки или преобразовывать скрипты в другую кодировку.
Существующие скрипты
Скрипты, которые уже находятся в файловой системе, могут нуждаться в повторном кодировании в указанную вами кодировку. В нижней строке VS Code вы увидите метку UTF-8. Щелкните ее, чтобы открыть панель действий, и выберите команду Сохранить с кодировкой. Теперь вы можете выбрать новую кодировку для этого файла. Подробные инструкции см. в разделе Кодировка в VS Code.
Если вам нужно повторно кодировать несколько файлов, можно использовать следующий скрипт:
Интегрированная среда сценариев (ISE) PowerShell
При редактировании скриптов с помощью интегрированной среды сценариев PowerShell необходимо синхронизировать здесь параметры кодировки.
Интегрированная среда сценариев должна учитывать метку порядка байтов, но можно также использовать отражение для задания кодировки. Обратите внимание, что это значение не сохраняется между запусками.
Система управления версиями
Некоторые системы управления версиями, например git, игнорируют кодировки; git отслеживает только байты. Поведение других, например Azure DevOps или Mercurial, может отличаться. Даже некоторые средства, основанные на git, полагаются на декодирование текста.
Если это так, убедитесь, что вы:
- Настроили кодировку в системе управления версиями в соответствии с вашей конфигурацией VS Code.
- Сделали так, что все файлы добавляются в систему управления версиями в соответствующей кодировке.
- Остерегайтесь изменять кодировки, полученные через систему управления версиями. Ключевым признаком здесь будет разностный файл, который указывает, что изменения отсутствуют (так как изменены байты, но не символы).
Среды других участников
Настроив систему управления версиями, убедитесь также, что параметры других участников, работающих над теми файлами, к которым вы предоставляете общий доступ, не переопределяют кодировку путем повторного кодирования файлов PowerShell.
Другие программы
Все другие программы, которые считывают или записывают скрипты PowerShell, могут перекодировать их.
- Использование буфера обмена для копирования и вставки скрипта. Такое часто встречается в следующих случаях:
- Копирование скрипта в виртуальную машину.
- Копирование скрипта из электронной почты или с веб-страницы.
- Копирование скрипта через документ Microsoft Word или PowerPoint.
- Блокнот;
- vim;
- любой другой редактор скриптов PowerShell.
- Get-Content / Set-Content / Out-File
- Операторы перенаправления PowerShell, такие как > и >> .
- sed / awk
- Веб-браузер при скачивании скриптов.
- Общий файловый ресурс.
Некоторые из этих средств работают с байтами, а не с текстом, но другие позволяют настраивать кодировки. В случаях, когда необходимо настроить кодировку, используйте те же параметры, что и в вашем редакторе, чтобы предотвратить возникновение проблем.
Другие ресурсы о кодировках в PowerShell
Существует несколько других достойных публикаций на тему кодировок и настройки кодирования в PowerShell:
Читайте также: