태그 보관물: vb.net

vb.net

Å Ä Ö를 작동시키기위한 인코딩 파일을 만들 때 예상대로

VB.net에서 제어판을 사용하는 대신 암호를 사용하여 사용자 “Windows 7 계정”을 쉽게 만들 수있는 작은 응용 프로그램을 작성하고 있습니다. 내가 겪고있는 문제는 UTF-8 인코딩을 사용하여 VB.net에서 bat 파일을 만들 때 예상대로 å ä ö를 쓰지 않는다는 것입니다. 찾을 수있는 모든 인코딩을 시도했지만 제대로 작동하지 않습니다.

왜 내가 이것을 얻는 지에 대한 아이디어가 있다면 알려주십시오. 미리 감사드립니다!



답변

편집 : 내가 잘못했다)
cmd.exeUTF-8을 받아 않지만 저장해야 할 필요가 없이BOM 파일의 시작 부분에.

다음은 두 번째 테스트입니다. chcp 65001배치 파일의 시작 부분에서 사용할 수 있습니다 .


배치 파일 UTF-8 유형일 수 없습니다 . ASCII 여야합니다. Cmd.exe다른 형식은 허용하지 않습니다. 나는 작은 테스트를했고 당신은 당신의 캐릭터를 사용할 수 있지만 약간의 작업이 필요합니다.

로 파일 test.bat을 만듭니다 echo Å Ä Ö. format으로 저장하십시오 ANSI/ASCII. a를 열고 용도를 cmd.exe확인하십시오 (유니 코드 문자 표시).cmd.exeLucida 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을 사용하면 문제가 해결되었습니다! 모든 도움을 주셔서 감사합니다 너무 릭 🙂


답변