>  기사  >  백엔드 개발  >  내 PHP 응답에 문자 65279가 나타나는 이유는 무엇입니까?

내 PHP 응답에 문자 65279가 나타나는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-07 12:01:03845검색

Why Does Character 65279 Appear in My PHP Response?

PHP에서 문자 65279 에코의 미스터리 이해

AJAX 콜백 중에 텍스트가 경고에 올바르게 표시되는 수수께끼 같은 문제가 발생했음에도 불구하고 그러나 'if' 문에서 일치하지 못했습니다. 범인은 응답 텍스트 시작 부분에 숨겨진 문자였습니다. 흥미롭게도 이 문자의 문자 코드는 65279였습니다.

추가 조사에 따르면 서버 측 PHP 코드에서 유래한 이 문자는 응답 인코딩을 정의하기 위한 보이지 않는 UTF-8 제어 문자인 것으로 밝혀졌습니다. 그러나 질문이 생깁니다. 왜 이 문자가 의도치 않게 에코되었습니까?

PHP 코드를 자세히 조사한 결과 간단한 'echo' 문을 사용하여 응답을 출력했습니다. 그러나 PHP 파일을 저장하는 데 사용된 메모장이 파일에 BOM(바이트 순서 표시)을 미묘하게 추가한 것이 분명해졌습니다. 이 BOM은 EF BB BF의 3바이트로 구성되었으며, 그 목적은 파일의 인코딩이 빅엔디안 바이트 순서의 UTF-8임을 나타내는 것이었습니다.

PHP는 일반적으로 BOM을 문제 없이 처리하지만 문제가 발생할 수 있습니다. 하나의 PHP 파일이 다른 PHP 파일에 포함될 때 발생합니다. 이러한 경우 BOM으로 인해 문자열 앞에 문자 65279가 추가되어 비교 시 예기치 않은 동작이 발생할 수 있습니다.

다행히 이 문제를 피할 수 있는 방법이 있습니다.

  1. 메모장을 사용하고 "BOM 없이 UTF-8로 인코딩": 메모장은 BOM을 추가하지 않고 UTF-8 인코딩으로 파일을 저장할 수 있는 옵션을 제공하여 문제를 효과적으로 해결합니다.
  2. 포함된 PHP 파일을 메모장에서 ANSI 인코딩으로 저장합니다. 이 옵션은 파일에 확장 문자가 포함되지 않은 경우 적합하지만 모든 상황에는 적합하지 않을 수 있습니다.

이를 구현하여 솔루션을 사용하면 개발자는 PHP 응답에서 문자 65279가 나타나는 것을 방지하여 비교 및 ​​기타 문자열 작업이 의도한 대로 작동하도록 할 수 있습니다.

위 내용은 내 PHP 응답에 문자 65279가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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