Å Ä Ö를 작동시키기위한 인코딩


12

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

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


stackoverflow.com에 게시하고 스크립트를 표시하십시오.
Toby Allen

1
@Toby Allen 글쎄, 그것은 프로그래밍 문제는 아니지만 텍스트 인코딩에 관한 질문입니다. .bat 파일을 "일반"방식으로 만들 때도 같은 문제가 발생합니다.
kagstrom2100

답변:


12

편집 : 내가 잘못했다)
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에서 코드를 작성할 수 없습니까?

cmd.exe


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

답변을 주셔서 감사합니다. 내 vb.net 응용 프로그램에서 다음 명령을 사용하여 .bat 파일을 만들려고합니다. net user "username"net localgroup administratörer "type"/ add 관리자 대신 스웨덴어 단어 adminstratörer를 사용해야하는 이유는 localgroup won 영어 번역을 그룹으로 삼지 마십시오.
kagstrom2100

VB.net에서 직접 할 수있을 때 .bat 파일을 통과하는 것이 약간이라고 생각했습니다. 여기 처럼 . Google의 많은 예제 도 있습니다. 따라서 .bat를 중개인으로 만들 필요가 없습니다. 그리고 이러한 예제를 통해 유니 코드 이름을 Windows 기능에 직접 공급할 수 있습니다. (어떤 이유로 VB.net 앱과는 다른 시간에 .bat를 실행해야하지 않는 한?)
Rik

글쎄, 나는 그것을 할 방법을 찾지 못했지만 Google의 VB.net에서 며칠 동안이 작업을 수행 할 수있는 방법을 찾고있었습니다. 이미 연결 한 예제를 시도했지만 작동하지 않는 것 같습니다. .bat 파일이 BOM을 사용하지 않는지 어떻게 확인합니까? 또한 Lucida Console은 무엇입니까? 내가 찾을 수있는 유일한 정보는 글꼴이라는 것입니다. 내가 두 번째 예 / 이미지에서 한 정확한 일을하려고 할 때 나는이 얻을 i.imgur.com/6sh20j0.jpg
kagstrom2100

나는 대답을 추가하고 포함 Lucida Console시키지 않고 파일 생성을 추가했습니다 BOM(아래 2 번 편집). 그러나 net user명령 프롬프트 작업을 통해이 사용자를 작성 합니까? VB.net을 통해 만들면 어떻게되지 않습니까? 이를 위해서는 예제 코드 (또는 별도의 질문)가 필요할 것입니다. (BTW 당신은 ​​당신의 의견이 아니라 내 이미지를 연결했습니다.)
Rik

2
@JohnLBevan 그래, 맞아. 분명히 findUTF-8 입력을 처리하지 너무 잘하지 않습니다. 하지만 당신은 사용할 수 있습니다 findstr. : 이것처럼ping 127.0.0.1 -n 2 | findstr /C:" = "

2

나를 위해 이것을 고친 것은 BOM없이 파일을 UTF-8로 저장 하고이 코드를 사용하는 것이 었습니다

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

내가 전에 사용하지 않은 것은 @echo off 였으므로 chcp 65001을 사용하면 문제가 해결되었습니다! 모든 도움을 주셔서 감사합니다 너무 릭 :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.