PHP는 json_encode가 배열을 json 문자열로 변환 할 때 공백을 반환하는 문제를 해결합니다.

문제 발생 :

프로젝트 개발에서 json_encode ($ res)를 사용하여 배열을 json 문자열로 변환했는데 반환 된 결과가 비어있는 경우 지금 어떻게해야합니까?

해결책:

1. 오류의 원인을 찾으려면 PHP와 함께 제공되는 두 가지 방법을 사용하여 오류를 확인할 수 있습니다.

json_last_error () 

이 함수는 현재 json_encode 오류의 원인을 반환하고 숫자를 반환합니다. 어떤 오류인지 확인해야합니다.

에러 코드 코드 네임 기술  
0 JSON_ERROR_NONE 오류가 발생하지 않았습니다.  
1 JSON_ERROR_DEPTH 최대 스택 깊이에 도달했습니다.  
2 JSON_ERROR_STATE_MISMATCH 유효하지 않거나 비정상적인 JSON  
JSON_ERROR_CTRL_CHAR 제어 문자가 잘못되었습니다. 인코딩이 잘못되었을 수 있습니다.  
4 JSON_ERROR_SYNTAX 문법 오류  
5 JSON_ERROR_UTF8 잘못된 인코딩으로 인한 비정상적인 UTF-8 문자. PHP 5.3.3
6 JSON_ERROR_RECURSION 인코딩 할 값에있는 하나 이상의 재귀 참조 PHP 5.5.0
7 JSON_ERROR_INF_OR_NAN 하나 이상  NAN 또는  INF 값의 값으로 부호화 할 PHP 5.5.0
8 JSON_ERROR_UNSUPPORTED_TYPE 지정된 유형의 값을 인코딩 할 수 없습니다. PHP 5.5.0
9 JSON_ERROR_INVALID_PROPERTY_NAME 지정된 속성 이름을 인코딩 할 수 없습니다. PHP 7.0.0
10 JSON_ERROR_UTF16 잘못된 UTF-16 문자는 잘못된 문자 인코딩 때문일 수 있습니다. PHP 7.0.0

json_last_error_msg ()

이 함수는 오류 원인에 대한 설명을 반환합니다. 예 : 잘못된 형식의 UTF-8 문자, 잘못 인코딩되었을 수 있음

잘못된 UTF-8 문자, 잘못 인코딩되었을 수 있음 이 오류는 일반적으로 utf-8 인코딩에서 왜곡 된 일부 특수 중국어 코드 변환으로 인해 발생합니다. utf-8 인코딩을 다시 번역하면됩니다. 방법은 다음과 같습니다.

//转换字符编码
$result = mb_convert_encoding($result, 'utf-8', 'UTF-8,GBK,GB2312,BIG5');

 

추천

출처blog.csdn.net/qq15577969/article/details/113941333