Какая кодировка заставить Å Ä Ö работать

Я пишу небольшое приложение в VB.net это позволит мне легко создать пользователя "Windows 7 account" с паролем, вместо того, чтобы идти через Панель управления. Проблема у меня в том, что, когда я создаю файл bat в VB.net используя кодировку UTF-8, он не пишет å ä ö, как это должно быть. Я пробовал все кодировки, которые я могу найти, но не могу заставить его работать.

Если у кого-нибудь есть идеи, почему я получаю это, пожалуйста, дайте мне знать.
Спасибо заранее!

14
задан kagstrom2100
29.04.2023 23:54 Количество просмотров материала 3277
Распечатать страницу

2 ответа

Edit: Я был неправ ;)

cmd.exe принимает UTF-8, но вам нужно обязательно сохранить его безBOM в начале файла.

вот второй тест. Вы можете использовать chcp 65001 в начале пакетного файла.

enter image description here


пакетный файл не может быть типа UTF-8. Это должен быть ASCII. Cmd.exe просто не принимает другой формат. Я сделал небольшой тест, и вы можете использовать ваши персонажи, но это требует некоторой работы.

создать файл test.bat С echo Å Ä Ö. Сохраните его в формате ANSI/ASCII. Открой cmd.exe и cmd.exe использует Lucida Console (для отображения символов Unicode).

при вводе файла он будет показывать символы как старые DOS-символы. Вы можете увидеть диаграмму перевода здесь.

при переключении на "Windows Ansi" -страницу код (то есть Запад Европейская латынь) с chcp 1252 символы отображаются правильно. Если они также получить переданы их соответствующих утилит зависит от этой утилиты.

но зачем вы создаете для этого пакетный файл? Вы не можете просто код в VB.net?

cmd.exe


Изменить 2#:

вот как вы устанавливаете Lucida Console in cmd.exe:

Lucida Console


на BOM в 3 символы в начале файла UTF-8. (\xEF\xBB\xBF).

В VB.net вы создадите файл без a BOM такой:

Dim utf8WithoutBom As New System.Text.UTF8Encoding(False)
                                                  '^^^^^'
Using sink As New StreamWriter("Foobar.txt", False, utf8WithoutBom)
    sink.WriteLine("...")
End Using
9
отвечен Rik 2023-05-01 07:42

то, что исправило это для меня было сохранить файл как UTF-8 без BOM и с помощью этого кода

@echo off
chcp 65001
net user Linus /add
net localgroup Administratörer Test/add

вещь, которую я не использовал до @echo off так что и с помощью chcp 65001-это то, что починил его! Спасибо Рику за помощь:)

2
отвечен kagstrom2100 2023-05-01 09:59

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх