이상적으로는 명령줄 호출을 통해 ANSI로 인코딩된 텍스트 파일(Win 1252)을 BOM 없이 UTF8로 변환하고 싶습니다. 내 사용 사례: LuaLaTeX로 컴파일하려는 Stata에서 .tex 파일을 내보냅니다. Stata는 분명히 UTF8을 지원하지 않으며 LuaLaTeX는 아무것도 지원하지 않으므로 ASCII가 아닌 일부 문자가 질식됩니다. Stata 내부에서 쉘 명령을 호출할 수 있으므로 Stata 스크립트 내에서 즉시 변환을 수행할 수 있다면 좋을 것입니다.
따라서 이상적으로는 다음과 같은 명령을 호출할 수 있기를 바랍니다 convert2UTF.cmd file.tex
. 또 다른 좋은 옵션은 폴더 내의 파일을 일괄 변환하는 것입니다(예: *stata.tex를 사용하여 모든 파일을 변환). 또한 솔루션이 기본 Windows 도구(최소 Win 7, 더 나은 XP)에서도 작동한다면 좋을 것입니다.
비슷한 질문이 올라왔습니다여기전에. 그만큼Cygwin/GnuWin32 접근 방식컴퓨터에 추가 소프트웨어를 설치하지 않고도 변환할 수 있기 때문에 문제가 됩니다. 그만큼파워셸 접근 방식유망해 보이지만 out-file -en utf8
파일을 BOM과 함께 저장하는 것 같습니다.
또 다른 Powershell 접근 방식BOM 없이 UTF8로 변환되는 것 같습니다.
foreach($i in ls -recurse -filter "*.*") {
if (
$i.Extension.ToLower() -eq ".tex"
) {
$MyFile = Get-Content $i.fullname
[System.IO.File]::WriteAllLines($i.fullname, $MyFile)
}
}
불행히도 나는 그것을 실행하는 방법을 알 수 없습니다. .tex 파일과 같은 폴더에 powershell 스크립트로 저장했는데, 실행하면 건드리지 않습니다. 그래서 분명히 뭔가 빠진 것이 있는 것 같습니다. 내 Powershell 지식이 거의 아무것도 없다는 것은 말할 필요도 없습니다. 또한 Stata에서 호출할 때 파일 이름을 인수로 전달하고 싶습니다.
답변1
VBS 스크립트와 개체를 사용해 볼 수도 있을 것 같습니다 ADODB.Stream
.