2015-02-07 2 views
0

ASCII에서 UTF-8까지 여러 파일을 코드 변환하려고합니다. 이를 위해 ASCII에서 UTF-8로 파일을 변환하는 방법은 무엇입니까?

난의 iconv하여 시도 : US-ASCII -t UTF-8 -f

의 iconv>을이 infile

OUTFILE 엔코딩 -t 입력

인코딩 엔코딩 -f 출력 인코딩

여전히 파일이 UTF-8로 변환되지 않았습니다. .dat 파일입니다. 나는 구글에서 검색이 게시하기 전에

ASCII와 같은 정보가 UTF-8의 하위 집합입니다 발견, 그래서 모든 ASCII 파일이 이미 UTF-8로 인코딩합니다. ASCII 파일의 바이트와 "UTF-8로 인코딩"하여 생성 된 바이트는 정확히 같은 바이트입니다. 그들 사이에 차이점은 없습니다.

Best way to convert text files between character sets?

Force encode from US-ASCII to UTF-8 (iconv)

아직도 위의 링크는 도움이되지 않았다.

UTF-8을 지원하는 ASCII로되어 있어도 파일을받을 상대방이 UTF-8로 파일 인코딩해야합니다. UTF-8 형식의 파일 형식 만 있으면됩니다.

의견을 보내주십시오.

미리 감사드립니다.

+0

그것은 전혀 분명 문제가 무엇인지 아니에요 '파일'을 사용하여 유형 명령을 찾고 상대방에 대한 램에서 코멘트 후, 다음과 같은 실험을 추가 person 원래 ASCII 파일. 그들이 진짜 ASCII 인 경우에, 이미 UTF-8이기 때문에 잘되어야합니다. 실제로 잘못 됐어? –

+0

@Jon Skeet 상대방이 파일 형식을 UTF-8로 예상했습니다. 명령 파일 -i outfile을 사용하면 ascii가 반환되지만 utf-8로 엄격히 지정되기를 원합니다. ascii는 utf-8의 하위 집합입니다. – Ram

+3

진정한 ASCII라면 * * "UTF-8 strictly"입니다. 귀하의 의견을 바탕으로,'파일'의 출력 때문에 ASCII 파일을 거부하는 경우 상대방이 기본적으로 깨진 것처럼 들립니다. 그들은 ASCII 파일이 UTF-8 파일이라는 것을 받아 들여야하며 어쨌든 계속 처리해야합니다. –

답변

8

내가 말한 것처럼 ASCII는 UTF-8의 하위 집합이므로 모든 ASCII 파일이 이미 UTF-8로 인코딩되어 있기 때문에 약간 혼란 스럽습니다.

ASCII 문자 만 포함 된 파일을 상대방에게 보냈지 만 상대방이 'UTF-8 인코딩 됨'이 아니라고 불평하는 경우 그 사실을 언급하는 것 같습니다. ASCII 파일에는 내용이 UTF-8임을 명시 적으로 나타내는 바이트 순서 표시가 없습니다. 그런 경우가 참이면

, 당신은 여기에 답을 사용하여 바이트 순서 표시를 추가 할 수 있습니다

iconv: Converting from Windows ANSI to UTF-8 with BOM

을 상대방이 자신이 'BOM'(바이트 순서를 필요로하지 않음을 나타냅니다 경우 Mark)를 사용하지만 파일이 UTF-8이 아니라는 여전히 불만을 갖고 있다면 초기 파일이 실제로 ASCII가 아니라 ANSI 또는 ISO-8859-1을 사용하여 인코딩 된 문자를 포함 할 가능성이 있습니다. 단지를 제공 -

편집은

Tims-MacBook-Pro:~ tjohns$ echo 'Stuff' > deleteme 
Tims-MacBook-Pro:~ tjohns$ cat deleteme 
Stuff 
Tims-MacBook-Pro:~ tjohns$ file -I deleteme 
deleteme: text/plain; charset=us-ascii 
Tims-MacBook-Pro:~ tjohns$ echo -ne '\xEF\xBB\xBF' > deleteme 
Tims-MacBook-Pro:~ tjohns$ echo 'Stuff' >> deleteme 
Tims-MacBook-Pro:~ tjohns$ cat deleteme 
Stuff 
Tims-MacBook-Pro:~ tjohns$ file -I deleteme 
deleteme: text/plain; charset=utf-8 
+0

안녕하세요 @Timothy Johns. 당신의 설명에 감사드립니다. 상대방은 파일 -i outfile을 사용하여 파일 형식을 검사하고 있습니다. ascii를 반환하기 때문에 UTF-8로 처리하기를 원합니다. – Ram

+0

@ 램이 경우 나는 상대방이 바이트 순서 표를 찾고 있다고 확신하는데 약 98 %입니다. Mac OS에서 'file'은 "text/plain; charset = utf-8"이면 출력하고 그렇지 않으면 "text/plain; charset = us-ascii"를 출력합니다. 위의 답변을 수정하여 실험을 추가하겠습니다. –

+0

안녕하세요 @Timothy Johns 저는 Linux 환경에서 일하고있었습니다. UTF-8을 요구하는 이유는 ASCII로는 사용할 수없는 문자를 더 많이 지원하기 위해서입니다. 이 모든 것은 하둡 (데이터 세계)에서 데이터를 처리하는 것입니다. – Ram

관련 문제