PHP Ajax 왜곡 문제를 해결하는 방법
PHP Ajax 문자 왜곡에 대한 해결 방법: 1. 모든 데이터에 UTF-8 인코딩을 사용합니다. 2. "JSON" 및 "arrayRecursive" 두 함수를 사용하여 각 문자를 별도로 인코딩합니다.
이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
php는 ajax 중국어 왜곡 문제를 사용합니다.
PHP에서는 일반적으로 데이터베이스에서 데이터를 추출한 후 한 번에 여러 행 데이터, 프런트 엔드 js가 백엔드와 상호 작용하기 위해 ajax를 사용하는 경우 PHP는 하나의 데이터만 에코할 수 있지만 여러 데이터가 있으므로 json_encode()를 사용하는 하나의 배열만 전달할 수 있습니다. function, json_encode() 이 함수는 데이터를 json 데이터로 변환하는 것을 의미합니다.
변환 방법을 살펴보겠습니다.
php 배열:
먼저 PHP에서 두 개의 새로운 배열을 만듭니다. 하나는 중국어를 포함하고 다른 하나는 숫자 또는 영어를 포함하고 최종 출력을 살펴봅니다. 아이디어: 연관된 값이 더 직관적입니다
$gg=array('a'=>'中国','b'=>'日本','c'=>'美国','d'=>'加拿大','e'=>'法国'); $yy=array('f'=>'6','g'=>'7','h'>='8','i'=>'tom','j'=>'kevin');
배열 중 하나만 출력합니다:
echo $json=json_encode($gg);
출력 결과는 다음과 같습니다
{"a":"\u4e2d\u56fd","b":"\u65e5\u672c","c":"\u7f8e\u56fd","d":"\u52a0\u62ff\u5927","e":"\u6cd5\u56fd"}
양쪽에 중괄호가 있고 문자가 깨졌습니다
두 개를 넣어주세요 하나의 배열에 배열을 동시에 넣고 동시에 출력
echo $json=json_encode(array($gg,$yy));
Output 결과는 다음과 같습니다.
[{"a":"\u4e2d\u56fd","b":"\u65e5\u672c","c":"\u7f8e\u56fd","d":"\u52a0\u62ff\u5927","e":"\u6cd5\u56fd"},{"f":"6","g":"7","0":true,"i":"tom","j":"kevin"}]
배열의 배열을 json으로 포맷한 후 데이터가 []에 배치되는 것을 볼 수 있습니다. 대괄호 안에 있고 그 안의 배열은 {} 중괄호 안에 있지만 여전히 깨져 있습니다.
문자 깨짐 문제를 해결하려면 두 가지 방법이 있습니다.
방법 1: 데이터베이스 인코딩, PHP 인코딩 및 프런트 엔드 인코딩을 포함하여 모든 데이터는 UTF-8 인코딩을 사용합니다.两 방법 2: 다음 두 가지 기능을 사용하여 각 문자를 인코딩합니다. (일부 기호는 실패한 것으로 보이며 이 방법의 사용을 옹호하지 않습니다.)
function JSON($array) { arrayRecursive($array, 'urlencode', true); $json = json_encode($array); return urldecode($json); } function arrayRecursive(&$array, $function, $apply_to_keys_also = false){ static $recursive_counter = 0; if (++$recursive_counter > 1000) { die('possible deep recursion attack'); } foreach ($array as $key => $value) { if (is_array($value)) { arrayRecursive($array[$key], $function, $apply_to_keys_also); } else { $array[$key] = $function($value); } if ($apply_to_keys_also && is_string($key)) { $new_key = $function($key); if ($new_key != $key) { $array[$new_key] = $array[$key]; unset($array[$key]); } } } $recursive_counter--; }
이 두 기능을 사용한 후 출력 결과는 다음과 같습니다. 출력 결과로서의 출력 결과는 출력 결과를 출력 결과로 사용하는 것입니다. :
[{"a":"中国","b":"日本","c":"美国","d":"加拿大","e":"法国"},{"f":"6","g":"7","0":"1","i":"tom","j":"kevin"}]
추천 학습: "
PHP 비디오 튜토리얼
위 내용은 PHP Ajax 왜곡 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 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)

뜨거운 주제











이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

CakePHP에서 데이터베이스 작업은 매우 쉽습니다. 이번 장에서는 CRUD(생성, 읽기, 업데이트, 삭제) 작업을 이해하겠습니다.
