VB.net에서 제어판을 사용하는 대신 암호를 사용하여 사용자 “Windows 7 계정”을 쉽게 만들 수있는 작은 응용 프로그램을 작성하고 있습니다. 내가 겪고있는 문제는 UTF-8 인코딩을 사용하여 VB.net에서 bat 파일을 만들 때 예상대로 å ä ö를 쓰지 않는다는 것입니다. 찾을 수있는 모든 인코딩을 시도했지만 제대로 작동하지 않습니다.
왜 내가 이것을 얻는 지에 대한 아이디어가 있다면 알려주십시오. 미리 감사드립니다!
답변
편집 : 내가 잘못했다)
cmd.exe
UTF-8을 받아 않지만 저장해야 할 필요가 없이BOM
파일의 시작 부분에.
다음은 두 번째 테스트입니다. chcp 65001
배치 파일의 시작 부분에서 사용할 수 있습니다 .
배치 파일 은 UTF-8 유형일 수 없습니다 . ASCII 여야합니다. Cmd.exe
다른 형식은 허용하지 않습니다. 나는 작은 테스트를했고 당신은 당신의 캐릭터를 사용할 수 있지만 약간의 작업이 필요합니다.
로 파일 test.bat
을 만듭니다 echo Å Ä Ö
. format으로 저장하십시오 ANSI/ASCII
. a를 열고 용도를 cmd.exe
확인하십시오 (유니 코드 문자 표시).cmd.exe
Lucida Console
파일을 입력하면 이전 DOS 문자로 문자가 표시됩니다. 여기 에서 번역 차트를 볼 수 있습니다 .
“Windows Ansi” 코드 페이지 (예 : 서유럽 라틴어)로 전환 chcp 1252
하면 문자가 올바르게 표시됩니다. 이들이 각각의 유틸리티로 전송되는 경우 해당 유틸리티에 따라 다릅니다.
그러나 왜 이것을 위해 배치 파일을 작성합니까? VB.net에서 코드를 작성할 수 없습니까?
2 # 편집 :
이것은 당신이 설정하는 방법 Lucida Console
입니다 cmd.exe
:
는 BOM
수정 UTF-8 파일의 시작 부분에서 3 개 문자입니다. ( \xEF\xBB\xBF
).
VB.net에서 당신은 파일을 만들 것 없이BOM
과 같습니다 :
Dim utf8WithoutBom As New System.Text.UTF8Encoding(False)
'^^^^^'
Using sink As New StreamWriter("Foobar.txt", False, utf8WithoutBom)
sink.WriteLine("...")
End Using
답변
나를 위해 이것을 고친 것은 BOM없이 파일을 UTF-8로 저장 하고이 코드를 사용하는 것이 었습니다
@echo off
chcp 65001
net user Linus /add
net localgroup Administratörer Test/add
내가 전에 사용하지 않은 것은 @echo off 였으므로 chcp 65001을 사용하면 문제가 해결되었습니다! 모든 도움을 주셔서 감사합니다 너무 릭 🙂