Total Commander에서 선택한 파일 인코딩 변환


unxutils에서 sed 추출하기
http://unxutils.sourceforge.net

gnuwin32 coreutil에 echo 추출하기
https://gnuwin32.sourceforge.net/packages/coreutils.htm

gnuwin32 iconv 패키지
http://gnuwin32.sourceforge.net/packages/libiconv.htm
 
Total Commander의 TCBL 플러그인
https://totalcmd.net/plugring/TCBL_1.02.html



UTF-8 파일에 BOM넣기

gnuwin32용 echo로 BOM을 넣어 파일을 만들고 UTF-8 no BOM파일을 리다이렉션으로 추가해 넣기

메뉴/시작/시작메뉴변경에서 항목추가하고
명령어에는 tcbl.exe
매개변수에는 %L c:\bin\echo -ne \xEF\xBB\xBF > $x $; cat $f $A $x $; del $f $; ren $x $n



원하는 파일을 토탈 커맨더에서 선택하고 메뉴/시작/새로 추가한 시작메뉴를 누르면 인코딩 변환이 됩니다.


UTF-8 파일의 BOM제거

UnxUtils의 sed로 UTF-8파일의 BOM제거

명령어에는 tcbl.exe
매개변수에는 %L sed -i 1s/^\xEF\xBB\xBF// $f


iconv를 이용해 인코딩 변환하기

cp949 인코딩 파일을  UTF-8 no BOM으로 변환합니다. 

명령어에는 tcbl.exe
매개변수에는 %L iconv -f cp949 -t utf-8 $f $A $x $; del $f $; ren $x $n
 


참고: Total Commander에서 인코딩 정보를 파일리스트 창에 나오게 하기
https://ntxlds.blogspot.com/2022/03/encinfo-121.html


** ehco명령어는 Windows echo명령어와 중복되니 전체경로를 적어줍니다.
** UnxUtils의 echo명령어는 -e옵션을 사용할 수 없어 gnuwin32 echo를 사용해야 합니다.
** iconv에서 utf-8은 no BOM으로 변환 됩니다. utf-8 BOM 파일은 utf-16le/utf-16be로 변환되고 다른 BOM이 없는 인코딩으로 변환때는 에러발생하니 주의해야 합니다.
** 현재 iconv에서 no bom파일을 utf-16le로 변환하면 bom이 자동으로 붙지 않습니다. utf-8 no bom파일과 마찬가지로 echo -ne \xFF\xFE로 파일을 만들어 그 파일에 리다이렉션해주면 됩니다.