답변:
iconv
파일 인코딩을 변환하는 데 사용할 수 있습니다 .
iconv -f ascii -t utf16 file2.txt > another.txt
another.txt
그런 다음 원하는 인코딩이 있어야합니다.
당신은 또한 이것을 시도 할 수 있습니다 :
echo $var | iconv -f ascii -t utf16 > "file2.txt"
파일을 변환 할 때 바이트 순서 표시가 포함되어 있는지 확인해야합니다. 비록 표준은 바이트 순서 마크가 UTF-8을 사용하지 않는 것이 좋습니다 말한다 , 바이트 순서 표시하지 않고 UTF-8 및 ASCII 사이의 합법적 인 혼란이있을 수 있습니다 .
또한 바이트 순서 표시를 지정 UTF-16BE
하거나 추가 UTF-16LE
하지 않으므로 먼저 UTF-16
플랫폼 종속 엔디안을 사용하는 로 변환합니다 . 그런 다음 file
실제 엔디안을 결정하고로 변환합니다 UTF-16LE
.
마지막으로을 사용하여 파일을 만들면 파일 의 인코딩이 bash
수신 되므로 매핑해야합니다.bash
locale charmap
( iconv
지원되는 모든 인코딩을 나열 할 때 모두 대문자이기 때문에 모든 인코딩을 iconv -l
대문자로 만듭니다.)
BASH_ENCODING="$( locale charmap | tr [:lower:] [:upper:] )"
echo $var | iconv -f "$BASH_ENCODING" -t UTF-16 > UTF-16-UNKNOWN-ENDIANNESS-FILE
FILE_ENCODING="$( file --brief --mime-encoding UTF-16-UNKNOWN-ENDIANNESS-FILE )"
iconv -f "$FILE_ENCODING" -t UTF-16LE UTF-16-UNKNOWN-ENDIANNESS-FILE > file2.txt