2016-11-09 4 views
0

txt 파일에서 체코 문자를 읽는 데 문제가 있습니다.PHP를 사용하여 txt 파일에서 체코 어 문자 읽기

한 줄씩 범주가 들어있는 .txt 파일을 읽고 싶습니다. 일반적인 언어로는 아무런 문제가 없습니다. txt 파일을 한 줄씩 읽고 배열에 원하는 범주를 복사 할 수 있습니다.

그러나 체코 언어로 된 범주가 들어있는 txt 파일을 읽 자마자 내 코드의 출력을 처리하는 데 문제가 있습니다. 텍스트 파일이 문자를 올바르게 보여주고 있지만 체코 특정 문자가 쓰레기로 나옵니다.

예 : 글자 ě, č, ů 또는 ř는 모두 파일을 읽는 방식에 따라 정사각형이나 st \ u001b 또는 기타 문지름으로 출력됩니다.

원래 fgets 함수를 사용하여 텍스트 파일에서 한 줄을 읽습니다.

그러나 올바른 문자가 반환되지 않았으므로 utf8_encode를 추가하여 테스트를 시작했지만 일부 문자가 변경 되어도 여전히 모든 문자가 복원되지 않았습니다.

그런 다음 mb_convert_encoding과 결합 된 mb_detect_encoding을 실험하기 시작했으며 나중에 fgets가 잘못된 문자를 반환하여 file_get_contents로 테스트하기 시작했을 수도 있습니다. 이것은 또한 문제를 해결하지 못했습니다.

fgets 및 file_get_contents 함수의 출력이 처음부터 깨져서 txt 파일을 읽는 것과 관련된 주요 문제가 있다고 가정합니다.

체코 어 문자로 된 텍스트 파일을 올바르게 읽는 방법을 알려줄 사람이 있습니까?

미리 감사드립니다.

+0

'\ u001'이 (가)'\ u001 '에 표시되지 않습니다. JavaScript 코드를 생성해야합니다 (JavaScript/JSON 유니 코드 엔티티처럼 보입니다). 또한 맹목적으로 기능을 시도하지 마십시오. 왜'utf8_encode()'입니까? 라틴어 -1은 체코 어 문자도 저장할 수 없습니다! –

+0

맹목적으로 노력한 이유는 2 주 동안이 문제를 해결하기 위해 노력했기 때문입니다. 인터넷을 통해 모든 솔루션을 찾았지만 대부분의 기사는 HTML 페이지를로드하고 txt 파일은로드하지 않습니다. 그래서 나는 생각할 수있는 모든 옵션을 시도해 보았습니다 .--). 우연히 나는이 문제가 txt 파일에 있었고 내가 사용한 코드에서 알지 못했다. –

답변

0

오케 해결책을 직접 찾았습니다. 다른 사람이이 문제에 부딪혔을 경우 txt 파일의 코딩이 잘못되었습니다. 파일은 "UCS-2 Little Endian"코딩에 있습니다. 메모장 + +에서 파일을로드 한 후 UTF-8 형식으로 인코딩 할 수 있고 문제가 해결되었습니다.