문자 집합간에 텍스트 파일을 변환하는 가장 좋은 방법은 무엇입니까?
문자 집합간에 텍스트 파일을 변환하는 가장 빠르고 쉬운 도구 또는 방법은 무엇입니까?
특히 UTF-8에서 ISO-8859-15로 또는 그 반대로 변환해야합니다.
좋아하는 스크립팅 언어의 한 줄짜리 도구, 명령 줄 도구 또는 기타 OS, 웹 사이트 유틸리티 등
지금까지 최고의 솔루션 :
Linux / UNIX / OS X / cygwin에서 :
Troels Arvin 이 제안한 Gnu iconv 는 필터로 사용 하는 것이 가장 좋습니다 . 보편적으로 사용 가능한 것 같습니다. 예:
$ iconv -f UTF-8 -t ISO-8859-15 in.txt > out.txt
Cheekysoft 가 제안한 Gnu recode ( 수동 )는 하나 이상의 파일을 제자리에서 변환 합니다 . 예:
$ recode UTF8..ISO-8859-15 in.txt
이것은 짧은 별칭을 사용합니다.
$ recode utf8..l9 in.txt
Recode는 또한 다른 줄 끝 유형과 인코딩 간 변환에 사용할 수있는 표면 을 지원합니다 .
줄 바꾸기를 LF (Unix)에서 CR-LF (DOS)로 변환합니다.
$ recode ../CR-LF in.txt
Base64 인코딩 파일 :
$ recode ../Base64 in.txt
그것들을 결합 할 수도 있습니다.
Unix 줄 끝이있는 Base64 인코딩 UTF8 파일을 Dos 줄 끝이있는 Base64 인코딩 Latin 1 파일로 변환하십시오.
$ recode utf8/Base64..l1/CR-LF/Base64 file.txt
Powershell이 설치된 Windows ( Jay Bazuzi ) :
PS C:\> gc -en utf8 in.txt | Out-File -en ascii out.txt
(ISO-8859-15는 지원하지 않습니다. 지원되는 문자 세트는 유니 코드, utf7, utf8, utf32, ascii, bigendianunicode, 기본값 및 oem입니다.)
편집하다
ISO-8859-1 지원을 의미합니까? "문자열"을 사용하면 예를 들어 반대로
gc -en string in.txt | Out-File -en utf8 out.txt
참고 : 가능한 열거 값은 "알 수 없음, 문자열, 유니 코드, 바이트, BigEndianUnicode, UTF8, UTF7, Ascii"입니다.
- CsCvt- Kalytta의 문자 세트 변환기 는 Windows를위한 또 다른 훌륭한 명령 행 기반 변환 도구입니다.
독립형 유틸리티 접근
iconv -f ISO-8859-1 -t UTF-8 in.txt > out.txt
-f ENCODING the encoding of the input
-t ENCODING the encoding of the output
이러한 인수 중 하나를 지정할 필요는 없습니다. 기본적으로 현재 로케일 (일반적으로 UTF-8)로 설정됩니다.
VIM 사용해보기
당신이 vim
이것을 사용할 수있는 경우 :
모든 인코딩에 대해 테스트 된 것은 아닙니다.
이것에 대한 멋진 부분은 소스 인코딩을 알 필요가 없다는 것입니다
vim +"set nobomb | set fenc=utf8 | x" filename.txt
이 명령은 파일을 직접 수정합니다.
설명 부분!
+
: vim에서 파일을 열 때 명령을 직접 입력하는 데 사용됩니다. Usualy는 특정 줄에서 파일을 열었습니다.vim +14 file.txt
|
:;
bash에서 와 같이 여러 명령의 구분 기호set nobomb
: UTF-8 BOM 없음set fenc=utf8
: 새 인코딩을 utf-8 doc 링크로 설정x
: 파일 저장 후 닫기filename.txt
: 파일 경로"
: 파이프 때문에 qotes가 여기 있습니다. (그렇지 않으면 bash는 bash 파이프로 사용합니다)
Linux에서는 매우 강력한 recode 명령을 사용하여 다른 문자 집합과 줄 끝 문제를 시도하고 변환 할 수 있습니다. recode -l 은 도구가 변환 할 수있는 모든 형식과 인코딩을 보여줍니다. 매우 긴 목록 일 가능성이 높습니다.
iconv -f FROM-ENCODING -t TO-ENCODING file.txt
또한 많은 언어로 iconv 기반 도구가 있습니다.
Get-Content -Encoding UTF8 FILE-UTF8.TXT | Out-File -Encoding UTF7 FILE-UTF7.TXT
입력 BOM이 올바른 것으로 가정 할 수있는 가장 짧은 버전 :
gc FILE.TXT | Out-File -en utf7 file-utf7.txt
iconv Bash 기능 사용해보기
나는 이것을 넣었다 .bashrc
.
utf8()
{
iconv -f ISO-8859-1 -t UTF-8 $1 > $1.tmp
rm $1
mv $1.tmp $1
}
.. 파일을 다음과 같이 변환 할 수 있습니다.
utf8 MyClass.java
메모장 사용해보기 ++
Windows에서는 메모장 ++을 사용하여 ISO-8859-1 에서 UTF-8 로 변환 할 수있었습니다 . 클릭 "Encoding"
다음 "Convert to UTF-8"
.
자동 문자 세트 감지 기능을 갖춘 find를 사용한 Oneliner
일치하는 모든 텍스트 파일 의 문자 인코딩 이 자동으로 감지 되고 일치하는 모든 텍스트 파일이 utf-8
인코딩 으로 변환됩니다 .
$ find . -type f -iname *.txt -exec sh -c 'iconv -f $(file -bi "$1" |sed -e "s/.*[ ]charset=//") -t utf-8 -o converted "$1" && mv converted "$1"' -- {} \;
이러한 단계를 수행하기 위해 하위 쉘 sh
이와 함께 사용되며 플래그 -exec
와 함께 하나의 라이너를 실행 -c
하고 파일 이름을와 "$1"
함께 위치 인수로 전달합니다 -- {}
. 그 사이에 utf-8
출력 파일의 이름은 임시로 지정 converted
됩니다.
이것에 의해 file -bi
:
-b
,--brief
파일 이름 앞에 출력 줄을 추가하지 마십시오 (간단 모드).-i
,--mime
파일 명령이 사람이 읽을 수있는 기존의 문자열이 아닌 MIME 유형 문자열을 출력하도록합니다. 따라서 예를 들어 말할 수text/plain; charset=us-ascii
보다는ASCII text
. 이sed
명령us-ascii
은에 필요한 만큼만 잘라냅니다iconv
.
이 find
명령은 이러한 파일 관리 자동화에 매우 유용합니다. 여기를 클릭 더 find
많음 .
PHP iconv ()
iconv("UTF-8", "ISO-8859-15", $input);
DOS / Windows : 코드 페이지 사용
chcp 65001>NUL
type ascii.txt > unicode.txt
명령 chcp
을 사용하여 코드 페이지를 변경할 수 있습니다. 코드 페이지 65001은 UTF-8의 Microsoft 이름입니다. 코드 페이지를 설정 한 후 다음 명령으로 생성 된 출력은 코드 페이지로 설정됩니다.
속성 파일 (Java)을 작성하려면 일반적으로 Linux (mint 및 ubuntu 배포판)에서 이것을 사용합니다.
$ native2ascii filename.properties
예를 들면 다음과 같습니다.
$ cat test.properties
first=Execução número um
second=Execução número dois
$ native2ascii test.properties
first=Execu\u00e7\u00e3o n\u00famero um
second=Execu\u00e7\u00e3o n\u00famero dois
추신 : 특수 문자를 강요하기 위해 포르투갈어로 실행 번호 1 / 2를 썼습니다.
내 경우에는 처음 실행했을 때이 메시지를 받았습니다.
$ native2ascii teste.txt
The program 'native2ascii' can be found in the following packages:
* gcj-5-jdk
* openjdk-8-jdk-headless
* gcj-4.8-jdk
* gcj-4.9-jdk
Try: sudo apt install <selected package>
첫 번째 옵션 (gcj-5-jdk)을 설치하면 문제가 완료되었습니다.
나는 이것이 누군가를 돕기를 바랍니다.
루비로 :
ruby -e "File.write('output.txt', File.read('input.txt').encode('UTF-8', 'binary', invalid: :replace, undef: :replace, replace: ''))"
출처 : https://robots.thoughtbot.com/fight-back-utf-8-invalid-byte-sequences
이 Python 스크립트를 사용하십시오. https://github.com/goerz/convert_encoding.py 모든 플랫폼에서 작동합니다. Python 2.7이 필요합니다.
내가 가장 좋아하는 도구는 두 가지 매우 편리한 기능을 가진 Jedit (자바 기반 텍스트 편집기)입니다.
- 사용자가 다른 인코딩으로 텍스트를 다시로드 할 수있게하고 결과를 시각적으로 제어 할 수 있습니다.
- 사용자가 저장하기 전에 인코딩 (및 줄 끝 문자)을 명시 적으로 선택할 수있게하는 또 하나
현재 문자셋이 표시되는 상태 표시 줄 (아래)의 오른쪽에있는 IntelliJ IDEA IDE에서로드 된 파일의 인코딩을 변경하기 만하면됩니다. 다시로드 또는 변환하라는 메시지가 표시되면 변환을 사용하십시오. 원본 파일을 미리 백업했는지 확인하십시오.
에 설명 된 바와 같이 어떻게 문자 파일의 인코딩을 수정합니까? 그것을 분석하십시오! ICU 라이브러리가 지원하는 모든 인코딩간에 OS X를 쉽게 변환 할 수 있습니다 .
또한 모든 인코딩에서 유니 코드로 변환 된 파일의 일부 바이트를 표시하여 파일에 적합한 파일을 빠르게 확인할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/64860/best-way-to-convert-text-files-between-character-sets
'development' 카테고리의 다른 글
이미지 나 범위 태그를 사용하지 않고 CSS를 통해 UL / LI HTML 목록에서 글 머리 기호 색상을 설정하는 방법 (0) | 2020.02.12 |
---|---|
문자열 유형으로 열거 형을 열거하는 방법은 무엇입니까? (0) | 2020.02.12 |
파이썬에서 상대적 가져 오기를 수행하는 방법? (0) | 2020.02.12 |
파이썬에서 쿼리 문자열을 urlencode하는 방법은 무엇입니까? (0) | 2020.02.11 |
부트 스트랩에서 col-lg- *, col-md- * 및 col-sm- *의 차이점은 무엇입니까? (0) | 2020.02.11 |