php5.4 이하의 JSON 버전은 content_php 팁을 이스케이프 처리하지 않고 중국어 솔루션을 지원하지 않습니다.
이 기사의 예에서는 php5.4 이하 버전의 json이 이스케이프되지 않은 중국어 콘텐츠를 지원하지 않는 문제에 대한 솔루션을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
ERP 인터페이스를 작성할 때 이 json_encoded 콘텐츠를 수신하는 JAVA 측을 만났습니다
그 중 "creator":"u751fu6d3bu7528u54c1u6d4bu8bd5u5c0fu5c4b"는 중국어로 현재 UTF8을 사용하고 있습니다. 하지만 JAVA 측에서는 이를 수신하면 이스케이프된 중국어를 다시 중국어로 자동 변환하므로 서명 계산 방법은 당연히 서명이 정확하지 않습니다.
PHP 매뉴얼을 확인해보니 5.4 이하에서는 한자를 이스케이프 처리해야 한다고 나와 있는데, 저희 서버의 PHP 버전이 5.3이기 때문에 PHP를 사용하여 JSON 방식을 시뮬레이션했습니다.
if (version_compare(PHP_VERSION, '5.4.0') >= 0) {
함수 json_encode_ex($var) {
return json_encode($var, JSON_UNESCAPED_UNICODE);
}
} 그 밖의 {
함수 json_encode_ex($var) {
If ($var === null)
'null'을 반환합니다.
if ($var === true)
'true'를 반환합니다.
if ($var === false)
'false'를 반환합니다.
정적 $reps = 배열(
배열("\", "/", "n", "t", "r", "b", "f", '"', ),
배열('\\', '\/', '\n', '\t', '\r', '\b', '\f', '"', ),
);
if (is_scalar($var))
return '"' . str_replace($reps[0], $reps[1], (string) $var) . '"';
if (!is_array($var))
새로운 예외 발생('JSON 인코더 오류!');
$isMap = 거짓;
$i = 0;
foreach (array_keys($var)를 $k로) {
If (!is_int($k) || $i != $k) {
$isMap = true;
휴식;
}
}
$s = 배열();
if ($isMap) {
foreach($var는 $k => $v)
$s[] = '"' . $k . '":' . call_user_func(__FUNCTION__, $v);
'{' implode(',', $s) '}'를 반환합니다.
} else {
foreach($var를 $v로)
$s[] = call_user_func(__FUNCTION__, $v);
'[' . implode(',', $s) ']';를 반환합니다.
}
}
}
사용시에는 내장된 기능으로 직접 사용하시면 됩니다. json_encode_ex(array('Diaoyu Island'=>'China')); 또한 다차원 배열을 지원합니다.
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...

Python 3.6에 피클 파일 로딩 3.6 환경 오류 : ModulenotFounderRor : nomodulename ...

Python의 하위 프로세스 모듈을 사용하여 WMIC를 실행 ...

ValueError에 대한 이유와 해결책 : Pyecharts 'Map을 사용할 때 Toomyvalueestounpack (예상 2) 오류 ...

Python 3.6에 피클 파일로드 3.6 환경 보고서 오류 : modulenotfounderror : nomodulename ...

Windows System Logs의 효율적인 읽기 : Bython을 사용하여 Windows System Log 파일 (.EVTX)을 처리 할 때 EVTX 파일을 역전시킵니다. 직접 읽기는 가장 빠른 것입니다 ...

Android 개발에 Mac을 사용할 때 ADB를 사용한 무선 디버깅에 대한 자주 묻는 질문은 종종 ADB를 사용할 수 없다는 것을 종종 만나게됩니다.
