문제 발생 :
프로젝트 개발에서 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');