2012-05-16 3 views
0

나는 ISO-8859-1에 UTF-8에서 PHP 파일 (client.php)을 변환하려고하지 않고, 다음 명령은 파일에 아무것도하지 않는다 :iconv에서 아무것도

실행시

의 iconv -f UTF-8 ISO-8859-1 client.php

-t은 원본 파일의 내용이 표시됩니다.

사실

, I 함께 의 iconv 실행 후 파일의 인코딩을 확인했을 때

파일 -I의 client.php

같은 오래 UTF-8로 도시되어

:

client.php : text/x-php; charset = utf-8

+0

의 이름을 변경 인코딩이 실제로 차이를 만들 것 파일에서 비 ASCII 문자가 있습니까? – deceze

답변

3

iconv 유틸리티는 파일의 문자 인코딩을 코드 세트 하나에서 다른 문자 세트로 변환하고 결과를 표준 출력으로 작성합니다. 여기

는 해결책 : 쓰기 표준 출력 임시 파일과 임시 파일

iconv -f UTF-8 -t ISO_8859-1 client.php > client_temp.php && mv -f client_temp.php client.php 
+0

안녕하세요 @ jackjr300 !! 그것은 일했다!! IMHO, iconv에 입력 파일을 덮어 쓸 수있는 플래그가 있어야합니다. 단지 의견. 나는 결과가 표준 산출물에 기록된다는 것을 다음에 읽었을 때 알게 될 것입니다. – CarlesAndres

+0

iconv에 플래그가 없습니다. – jackjr300

1

ASCII, UTF-8 및 ISO-8859는 가장 낮은 128 문자에 대해 100 % 동일한 인코딩입니다. 파일에 해당 범위에있는 문자 (기본적으로 미국 영어 키보드에서 볼 수있는 문자 집합) 만 포함 된 경우 이러한 인코딩간에 차이가 없습니다.

내 생각에 어떤 일이 일어 났는지 : 일반 텍스트 파일에는 인코딩 된 메타 데이터가 없습니다. 평범한 텍스트 파일을 보면서 인코딩을 알 수는 없습니다. file 유틸리티가 수행하는 작업은 단순히 최상의 추측을 제공하는 것이므로 파일이 UTF-8로 인코딩 된 것을 선호하는 차이점이 없으므로 기술적으로는 그럴 수 있습니다.

+0

내 파일에 ASCII 세트가 아닌 일부 스페인어 문자가 포함되어 있습니다. 사실, 나는 '을 사용하여 파일을 렌더링 할 때 인코딩에 문제가 있음을 발견했다. 어쨌든 고마워. – CarlesAndres