2011-10-14 6 views
1

기존 PHP 사이트에서 작업 중이며 데이터를 출력하고 텍스트 문서에 저장되는 내보내기 페이지가 있습니다. (TXT & XTG)는ob_get_clean 결과를 PHP로 변환

$output = ob_get_clean(); 

내가 해결하기 위해 노력하고있어 문제가 분명히 charcters가 제대로 표시되지 않는 출력의 인코딩입니다. 데이터베이스가 올바른 UTF-8 형식인지 확신합니다.

이슈 나는 다음과 같은 노력이 La Fédération

처럼 보여 주지만, 그것은 작동하지 않았다 - 출력이 여전히 잘못 - 어떤 아이디어?

$output = mb_convert_encoding($output, "UTF-8"); 

는 페이지가 UTF-8있는 브라우저가 보여 나는 사이트 자체에 적절하게 데이터 디스플레이를 가정하고 있어요

+0

데이터가 데이터베이스에서 어떻게 표시되는지는 데이터가 잘못되었음을 의미합니다 (예 : 데이터가 Latin1 연결을 통해 UTF-8을 전송하여 삽입되었지만 UTF-8 연결을 사용하여 검색된 경우). 또는 귀하의 페이지가 UTF-8로 표시되도록 설정되지 않았습니다. –

+0

당신은 "데이터베이스가 올바른 UTF-8 형식인지 확신합니다."하고 말했습니다. 당신은 완전히 확신하고 있습니까? 값이 올바르게 저장되고 있는지 확인하기 위해 DB를 확인 했습니까? – Bogdan

+0

난 그냥 지금은 더블 체크가 생겼어 – mro

답변

2

를 찾고에 대한

// Ouput file. 
// Set DOS line endings for Quark 6 
file_put_contents("/var/www/vhosts/artsdb.net/httpdocs/export/" . $type . "/" . $filename . ".xtg.txt", str_replace(array("\n", "\r\n\r\n"), array("\r\n", "\r\n"), $output)); 

echo "Exporting " . str_replace("_", " ", $filename) . " ($type) complete.\n\n"; 

감사 관련 코드의 나머지 부분입니다 .

이 문제를 해결하려면 먼저 인코딩 변환을 제거하고 웹 브라우저에서 텍스트 파일을 열어 파일을 보는 방법에 대한 문제를 제거하고 실제로 파일이 UTF- 8.

위의 브라우저에서 텍스트 파일의 내용이 utf-8이 아닌 것으로 나타나면 파일에 쓰기 전에 utf8_encode를 $ 출력에 호출 해보십시오.

+0

테이블 및 데이터 정렬은 utf8에서 설정되는 것처럼 보입니다. 웹 사이트에 표시된 데이터는 괜찮아 보입니다 (htmlentitites가 사용되는 것 같습니다).하지만 텍스트 파일로 내보내기하면 여전히 이상한 문자가 표시됩니다. utf8_encode도이 문제에 영향을 미치지 않습니다. – mro