언어 독립성을 위해 텍스트 파일을 사용하는 배치 파일이 있습니다. 어제까지 모두 정상적으로 작동했지만 ... 표준 텍스트를 네덜란드어와 독일어로 번역하기 시작했습니다. 두 언어 모두 ä, ë, ö와 같이 분음 부호 또는 악센트 부호가있는 문자를 사용합니다. 나는 스페인어가 ñ에 동일한 문제를 줄 것이라고 생각한다. 메모장에서 표준 인코딩 인 ANSI를 사용하여 텍스트 파일을 만들었습니다. 파일을 입력하는 것만으로 (DOS : TYPE) 잘못된 악센트 부호가있는 문자가 표시되었습니다. ë로 나타났다. 텍스트 파일을 편집하고 유니 코드 인코딩으로 저장 한 후 DOS TYPE은 메모장에서 입력 한 내용을 정확히 보여줍니다. 이 시점에서 나는 내 문제가 해결되었다고 생각했지만 ... 내 일괄 처리 코드는 이제 전혀 텍스트를 보여주지 않습니다! 모든 텍스트는 다음과 같습니다 배치 파일로 파일에서 검색 (간체) : ECHO
이 ON
경우배치 파일의 ANSI/유니 코드 충돌
@rem Parms %1 text type number File %%a program name
@rem %2 program name (double quoted) %%b - - filler (tabs)
@rem %3 text number %%c text number
@rem %4 replacement value - 1 %%d - - filler (tabs)
@rem %5 replacement value - 2 %%e text string
set TempText=
set TempType=
setlocal enabledelayedexpansion
@rem Read file until both values are set ...
for /f "usebackq tokens=1,2,3,4,5 delims=|" %%a in ("%EnvPath%Text.txt") do (
if /i %%a==Tools (if /i %%c==%1 (set TempType=%%e))
if /i %%a==%~2 (if /i %%c==%3 (set TempText=%%e))
if not "!TempType!"=="" (if not "!TempText!"=="" (goto :Leave))
)
:Leave
endlocal & set TempText=%TempText%&set TempType=%TempType%
는 어떤 라인이 파일에서 읽되거나 FOR 루프가 실행되지 않습니다 보여줍니다.
제 질문은 : 어떻게 유니 코드 텍스트를 읽을 수있는 FOR 루프를 만들 수 있습니까?
먼저 비 유니 코드 파일 만 먼저 확인과 시도 'CHCP'와 함께 코드 페이지를 만들 수 있습니다. 코드 페이지를 20106과 같은 독일어를 지원하는 것으로 변경하려고 할 수 있습니다 -'CHCP 20106'으로. 유니 코드 파일을 cmd로 처리하려면 명령 프롬프트에'/ U' 스위치를 사용해야합니다 또는 '65001' 페이지를 코드화하려고 시도하십시오. – npocmaka
코드 페이지에 대한 추가 정보 : https://en.wikipedia.org/wiki/Code_page –