>  기사  >  백엔드 개발  >  PHP는 Mac에서 잘못된 문자로 CSV를 생성합니다.

PHP는 Mac에서 잘못된 문자로 CSV를 생성합니다.

不言
不言원래의
2018-04-24 09:20:001963검색

이 글은 주로 PHP를 사용하여 Mac에서 잘못된 csv 파일을 생성하는 방법을 소개합니다. 이제는 필요한 친구들이 참조할 수 있습니다. PHP 방식으로 csv 파일을 내보낼 때 코드가 깨지는 문제



이 질문에 대해 이야기하기 전에 먼저 CSV 파일이 무엇인지부터 이야기해 볼까요? Comma Separator Value(쉼표 분리 값)도 있습니다. Mysql에서 CSV로 데이터 내보내기, SqlServer로 CSV 가져오기 등 데이터 변환에 자주 사용되는 중간 파일이 존재합니다. 조건에 따라 MySQL 데이터베이스의 테이블 데이터를 csv로 내보내려면 Linux에서 PHP 스크립트를 사용하십시오. CSV 파일을 내보내려면 utf-8 인코딩을 사용하십시오. 기본적으로) Notepad++를 사용하거나 Word가 정상적으로 열리지만 레이아웃이 지저분합니다. 이유: BOM이 문제에 빠졌고, Microsoft도 문제에 빠졌습니다. BOM이란 무엇인가요? Byte Order Mark(비트 순서 표시)도 있습니다.

유니코드 파일을 식별하기 위해 Microsoft에서는 모든 유니코드 파일이 ZERO WIDTH NOBREAK SPACE 문자로 시작하는 것을 권장합니다. 이는 파일에 사용된 인코딩 및 바이트 순서(빅엔디안 또는 리틀엔디안)를 식별하는 "서명" 또는 "바이트 순서 표시(BOM)" 역할을 합니다. 구체적인 대응 사항은 아래 표에 나와 있습니다.



바이트 인코딩 형식


00 00 FE FF

UTF-32, 빅엔디안

FF FE 00 00UTF-32, 리틀엔디안 UTF-16, big-endianUTF-16, little-endian참고: csv 파일을 작성할 때 PHP 소스 코드가 utf-8이고, BOM이 없고, 아무것도 출력하지 않는지 확인하세요.
FE FF
FF FE
EF B OM , 기존 ASCII 파일 구문 규칙을 위반하기 때문입니다.
구현 코드 if



Excel은 csv를 읽을 때 파일 헤더의 BOM을 읽어 인코딩을 식별합니다. 파일 헤더에 BOM 정보가 없으면 기본적으로 유니코드 인코딩으로 읽습니다. (이 BOM은 Microsoft 자체에서 정의한 파일 헤더 프로토콜입니다. 이름에서 알 수 있듯이 파일 헤더에 저장됩니다. 저장된 내용은 파일 인코딩을 식별하는 정보입니다.)

CSV를 생성하는 데 사용하는 플랫폼은 CSV를 생성하지 않습니다. 유니코드가 아닌 인코딩된 csv 파일(예: utf-8)을 출력하고 BOM 정보가 생성되지 않은 경우 Excel은 자동으로 유니코드 인코딩에 따라 해당 파일을 읽고 잘못된 문자가 나타납니다. .

이것을 숙달한 후에는 잘못된 문자가 더 이상 우리가 앞으로 나아가는 것을 막을 수 없다고 믿습니다. 유니코드가 아닌 인코딩된 csv 파일을 텍스트 편집기(notepad++ 권장)로 열고 BOM(특정 인코딩 방법은 선택 사항) 문제가 해결되었습니다.

관련 권장 사항:

PHP는 고유한 RequestID 클래스를 생성합니다


예제에서는 php


에서 .csv 접미사 파일 테이블을 생성하는 방법을 자세히 설명합니다.

위 내용은 PHP는 Mac에서 잘못된 문자로 CSV를 생성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.