2012-01-24 4 views
0

다른 소스 CSV ('SJIS'/ SHIFT-JIS로 인코딩 됨)에서 여러 개의 CSV를 만드는 프로그램을 만들었습니다.메모장에서 PHP를 사용하는 UTF8 인코딩 어려움 ++

  1. 것은 자신의 적절한 정보
  2. 인코딩 UTF-8 문자열로 출력의 내용을 CSV의
  3. 말했다에 기입 문자열을 개최하는 문자열을 만들기 : 여기를 만드는 오전하는 과정입니다 SJIS에서 mb_convert_encoding()을 사용하여 코드 :
    $ contents2 = mb_convert_encoding ($ contents, "UTF-8", "SJIS");
  4. 는 PHP의 제공 라이브러리 방법을 사용하여 우편 아카이브를 생성하고 addFromString() 코드를 사용하여 해당 문자열을 내가 원하는 파일을 추가합니다
    $ zipFileName = "output.zip을";

    $zip = new ZipArchive; 
        if ($zip->open($zipFileName, ZipArchive::CREATE) === TRUE){ 
         $zip->addFromString('customer.csv', $contents2); 
         ...do for the other files 
         $zip->close(); 
        } 
        else{ 
         echo 'Failed! File not created!'; 
        } 
    
  5. 파일을 원하는 위치에 저장하라는 대화 상자를 표시합니다. 코드 : $ zipContents = file_get_contents ($ zipFileName); header ('Content-Type : application/zip'); header ("Content-Disposition : attachment; filename = inflow.zip"); 헤더 ("Pragma : no-cache"); header ("Expires : 0"); echo $ zipContents;

이제 내 문제는 다음과 같습니다. zip 파일에서 만든 파일은 메모장 + +에서 열면 "UTF-8 BOM"으로 인코딩됩니다. 그러나, 나는이 파일들이 단지 평범한 "UTF-8"이어야한다고 요구한다. 이 파일을 업로드하는 데 사용하는 인벤토리 프로그램은 나와 다른 이유로 인해 "BOM없이 UTF-8"로 인코딩 된 CSV에 적절한 문자를 표시하지 않습니다. 수동으로 파일을 열고 "UTF-8"로 다시 인코딩 한 다음 저장하면이 인벤토리 프로그램에 올바른 문자를 표시 할 수 있습니다.

사람들이 BOM없이 인코딩 된 UTF-8 파일을 만들려고하는이 문제에 대해 이야기하는 많은 기사를 읽었습니다. 그러나 나의 상황은 이것의 정반대이다. PHP에 쉬운 해결책이 있다면 도움을 환영하는 것 이상! 읽어 주셔서 감사합니다!!

+0

나는 그것을 얻지 못합니다. 파일을 SJIS로 변환 중입니까? – deceze

답변

-2

가능한 해결책을 찾아보십시오. How can I output a UTF-8 CSV in PHP that Excel will read properly?

+0

링크를 보내 주셔서 감사합니다. 지금 당장이 파일을 읽으므로이 파일 기능의 반대가 필요합니다. 어디 파일에 BOM을 추가합니다. 나는 당신이 제안하고있는 것과 똑같은 것에 관해서 이야기하는 다른 링크를 발견했다. http://stackoverflow.com/questions/3127436/adding-bom-to-utf-8-files http://stackoverflow.com/questions/2558172/utf-8-bom-signature-in-php- 파일 다음은 PHP에서 지원되는 인코딩입니다. 참고 : "UTF-8"이 있지만 기본적으로 "BOM없이 UTF-8"이됩니다. http://www.php.net/manual/en/mbstring.supported-encodings.php – user1166155

+0

오, 확인. 나는 그것을 조사하고있다. 너에게 다시 돌아갈 게. –

+0

uft8_encode 함수를 사용하고 있습니까? 또한 fputcsv 함수를 사용해 보셨습니까? –