JSON 데이터를 디코딩(Malformed UTF-8 characters, possibly incorrectly encoded) > PHP
PHP

JSON 데이터를 디코딩(Malformed UTF-8 characters, possibly incorrectly encoded)

조회 53회 댓글 0건

"Malformed UTF-8 characters, possibly incorrectly encoded" 오류는 PHP가 JSON 데이터를 디코딩하려고 시도할 때,
그 데이터가 올바른 UTF-8 형식이 아니라고 판단했을 때 발생하는데 비 UTF-8 문자나 이진 데이터가 JSON 문자열에 포함되어 있을 때 일어난다.

웹에서 긁어서 복사해온 경우 2바이트로 처리 되거나 그런것들이 있는데 잘 보세요.
한글도 없는데 문제가 생기는 경우는
작은 따음표와 겹쳐서 비슷한 다른 문자를 사용하거나 그런 경우가 있습니다.

UTF-8 인코딩에 문제가 있는지 확인하기 위해, mb_check_encoding 함수를 사용해 볼 수 있다.


  if (!mb_check_encoding($json, 'UTF-8')) {
      echo 'The JSON string is not valid UTF-8';
  } else {
      $data = json_decode($json, true);

      if (json_last_error() !== JSON_ERROR_NONE) {
          echo 'JSON Error: ' . json_last_error_msg();
      }
  }
 


이 코드는 JSON 문자열이 UTF-8로 올바르게 인코딩되었는지 먼저 확인하고, 그 후 JSON 문자열을 디코딩합니다.

만약 JSON 문자열이 UTF-8로 올바르게 인코딩되지 않았다면, 'The JSON string is not valid UTF-8' 메시지를 출력합니다.


  if (!mb_check_encoding($json, 'UTF-8')) {
      echo 'The JSON string is not valid UTF-8';
  } else {
      $data = json_decode($json, true);

      if (json_last_error() !== JSON_ERROR_NONE) {
          echo 'JSON Error: ' . json_last_error_msg();
      }
  }
 



  • 페이스북으로 공유
  • 트위터로  공유
  • 구글플러스로 공유
전체 183건 1 페이지
  • profile_image 리눅스 환경에서 쉘에서 PHP를 실행하는 방법은 여러 가지가 있습니다.cron 스케줄에 넣어 사용해야 되는 경우 유용 하죠~선호 하는 방법은 php 전체 경로로 지정하는 첫번째 방식이 후에 php 버전이 변경 되었을때 대응하기가 더 편한 부분이 있습니다.● CLI(Command Line Interface) 방식 실행PHP CLI는 커맨드 라인에서 PHP 스크립트를 실행하기 위한 모드로서 직접 PHP를 실행하려면, 터미널에서 다음과 같이 명령어를…
  • profile_image 컴포저로 다운로드 받고 autoload 사용하기 위해서 설치 하려는데 잘 안되었던 부분 없애고 잘 된 부분만 정리해서 올립니다.최신 버전을 사용하시는 분은 이렇게 까지 할 필요는 없고 보통 기본으로 설치 되어 있습니다.여기서 php 경로를 지정해야 될 수 있습니다. 자신의 서버 환경에 맞게 지정하면 됩니다.1) 각 버전별 컴포저 다운로드 받기오래된 버전이라서 최근것을 사용하면 문제가 발생 할 수 있기 때문에 5.4 버전에 맞는 버전을 찾아 설치…
  • profile_image 파일은 없는데 아래와 같은 형태로 읽혀 들이는 것이 있다면 pear이 설치 되어 있는지 확인해 봐야 한다. 아래쪽에 보면 find명령으로 찾는것이 있으니 참고하면 된다. require_once 'PEAR.php';그래서 이 프로그램은 어떤 프로그램인가 궁금할 수도 있는데 예를 들면 아래와 같은 mime 처리 해주는 라이브러리가 있는데 PEAR.php 기반 위에 만들어진것이다.즉 PEAR.php 땅 위에 mime가 올라가 있는것이라 생각하면 된다…
  • profile_image 방문자의 출처 및 현재 페이지를 저장하기 위한 함수 입니다.페이지가 있는 페이지의 경우는 1페이만 저장해도 되는경우가 많습니다.방문자가 적은 사이트면 처리하는 부하가 많이 않으니 모두 저장하는것이 더 좋습니다. 생각보다 용량 많이 차지 하지 않습니다.단, 웨봇이나 클롤러의 경우는 필요하지 않으니 제외하는것이 좋겠습니다.아래는 출처와 키워드가 있을 경우 저장하는 함수 입니다.  /**   * user visit log write   *   * @…
  • profile_image 처음 배울때 만들어 보는 것중 하나 입니다. 삼각형은 중앙에 정렬된 별로 구성되어 있으며, 각 줄의 별의 수는 1, 3, 5로 증가합니다. 각 줄마다 양쪽에 적절한 수의 공백이 필요합니다. 이를 위해 다섯 가지 방법으로 구현된 메소드를 갖는 클래스를 작성의 예 입니다.    <?php  class CenteredTrianglePrinter {      // 첫 번째 방법: 중앙 정렬 반복문 사용      public function pri…
  • profile_image PHP에서 "Cannot use a scalar value as an array"라는 오류 메시지는 스칼라 값(정수, 부동소수점 수, 문자열 또는 불리언)을 배열처럼 사용하려고 시도할 때 발생합니다. 아래에는 이 오류가 발생하는 두 가지 예시를 들어 보겠습니다.1. 일반적인 절차형 코드    $var = "Hello, World!";  $var[1] = "a"; // 이 라인에서 오류가 발생합니다.위의 코드에서는 문자열 $var에 배열 인덱스를…