배치 파일 시작시 이상한 문자 (´╗┐) [중복]


30

메모장과 메모장 ++을 모두 사용하여 Windows에서 배치 파일로 작업하고 있습니다. 모두로 시작하는 배치 파일을 실행하면 @echo off첫 번째 줄 (두 개의 개별 컴퓨터에서 실행할 때) reading ´╗┐@echo off이 표시되고 그 아래의 모든 REM 줄도 나타납니다.

메모장 ++에서 인코딩을 변경하려고 시도했지만 이미 UTF-8 인코딩에 있다고 주장합니다.

이러한 파일이 제대로 실행 되려면 어떻게해야합니까?


@luu 내 질문은 메모장 + +에 관한 것입니다
Canadian Luke REINSTATE MONICA

UTF8로 저장할 때 일반 메모장은 BOM없이 저장할 수 없으며 해당 문자를 추가합니다.
dmcontador

답변:


26

UTF-8에 대한 바이트 순서 표시의 DOS ASCII 인코딩처럼 보입니다 (0xEF 0xBB 0xBF): http://en.wikipedia.org/wiki/Byte_order_mark

메모장 ++에서 "BOM없는 UTF-8"또는 일반 ASCII로 인코딩하십시오. UTF-8에 BOM을 사용하는 것은 바람직하지 않기 때문에 ASCII와 정확히 호환되지 않습니다.


2
파이썬에서 실험 한 것처럼 'DOS ASCII'를 제외한 DOS 코드 페이지 850은 다음과 같습니다.>>> print u'\ufeff'.encode('utf8').decode('cp850') ´╗┐
deltab

@deltab 아, 잘 찾았습니다. ╗┐MS-DOS 5 / Windows 3.11 이후로 라인 아트 문자를 보지 못했다는 것만으로 인코딩이 특별히 무엇인지 확실하지 않았습니다 . 최신 Windows는 호환성을 위해 해당 인코딩으로 배치 파일을 실행해야합니까?
baochan

1
Visual Studio를 사용하여 새 텍스트 파일을 만들 때이 문제가 발생했습니다.
Sam Goldberg

9

제대로 작동하려면 ANSI 인코딩 으로 설정해야합니다 . 이를 설정하기 위해 Encoding- > Encode in ANSI를 선택했습니다 .

이것을 파악하기 위해 명령 줄에서 배치 파일을 만들려고했습니다.

echo @echo off > batch.bat
echo REM Some comment... >> batch.bat
echo echo Hello world! >> batch.bat

그런 다음 메모장 ++ 에서이 파일을 열고 오른쪽 아래 모서리에서 인코딩을 확인했습니다.이 인코딩은 ANSI로 UTF-8 입니다. 왜 마지막 비트를 추가하는지 모르겠지만 지금 작동하는 것 같습니다.


ANSI는 실제로 인코딩이 아닙니다. 아마 그것은 당신의 Windows 시스템의 기본 코드 페이지를 참조 합니다. 구성에 따라 시스템마다 다릅니다.
코디 그레이

이것은 정확하지 않습니다. BOM은 문자 세트 인코딩 아티팩트입니다.
Thorbjørn Ravn Andersen

@ ThorbjørnRavnAndersen 누가 틀렸나 요, 아니면 코디?
Canadian Luke
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.