>백엔드 개발 >PHP 문제 >Android에서 PHP 중국어 문자가 깨졌을 경우 어떻게 해야 합니까?

Android에서 PHP 중국어 문자가 깨졌을 경우 어떻게 해야 합니까?

藏色散人
藏色散人원래의
2022-10-24 09:33:531693검색

PHP에서 Android 중국어 문자 왜곡에 대한 해결 방법: 1. 해당 PHP 파일을 엽니다. 2. "json_encode" 이전에 "urlencode()"를 사용하여 모든 배열의 모든 내용을 처리합니다. 3. "json_encode()"를 사용하여 변환합니다. 4. "urldecode()"를 사용하여 인코딩된 중국어를 다시 변환합니다.

Android에서 PHP 중국어 문자가 깨졌을 경우 어떻게 해야 합니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 8.1, Dell G3 컴퓨터.

Android에서 PHP 중국어 왜곡 문자를 제공하는 경우 어떻게 해야 하나요?

1. Android 자체는 mysql 데이터베이스에 직접 액세스할 수 없습니다. mysql 데이터베이스 작업을 완료하려면 PHP 웹 페이지를 사용해야 합니다. PHP와 Android 간의 데이터 교환에는 JSON 형식을 사용해야 합니다.

2. json이란

21세기 초 Douglas Crockford는 서버 간에 데이터를 교환할 수 있는 간단한 데이터 교환 형식을 찾고 있었습니다. 당시 일반적인 데이터 교환 언어는 XML이었지만 Douglas Crockford는 XML을 생성하고 구문 분석하는 것이 너무 번거롭다고 느껴 단순화된 형식인 Json을 제안했습니다.

Json의 사양은 매우 간단하며 한 페이지에 몇 백 단어로 명확하게 설명할 수 있습니다. Douglas Crockford는 이 사양은 모든 규정이 규정되어 있으므로 업그레이드할 필요가 없다고 주장했습니다.

1) 병렬 데이터는 쉼표(", ")로 구분됩니다.

2) 매핑은 콜론(":")으로 표현됩니다.

3) 병렬 데이터의 집합(배열)은 대괄호("[]")로 표시됩니다.

4) 매핑된 컬렉션(객체)은 중괄호("{}")로 표시됩니다.

위 4가지 규칙은 모두 Json 형식의 내용입니다.

예를 들어 다음 문장은

"베이징의 면적은 16,800제곱킬로미터이고 상주 인구는 1,600만 명입니다. 상하이의 면적은 6,400제곱 킬로미터이고 상주 인구가 1,800만 명입니다.

json 형식으로 작성하면 다음과 같습니다.

[  {"城市":"北京","面积":16800,"人口":1600},  {"城市":"上海","面积":6400,"人口":1800}]

데이터의 구조를 미리 알면 위의 작성을 더욱 단순화할 수 있습니다.

[  ["北京",16800,1600],  ["上海",6400,1800]]

json은 배우고 사용하기가 매우 쉽다는 것을 알 수 있습니다. 불과 몇 년 만에 XML을 대체하여 인터넷에서 가장 인기 있는 데이터 교환 형식이 되었습니다.

3. PHP에서 JSON 중국어 문자가 깨졌습니다.

PHP에서 json_encode() 내장 함수를 사용하세요. > 5.2) php의 데이터는 다른 언어에서도 잘 전송되어 사용될 수 있습니다.

<?php
$arr = array( &#39;Name&#39;=>&#39;希亚&#39;,&#39;Age&#39;=>20);
$jsonencode = json_encode($arr);
echo $jsonencode;
?>

프로그램 연산 결과는 다음과 같습니다.

Android에서 PHP 중국어 문자가 깨졌을 경우 어떻게 해야 합니까? json_encode 다음에 배열의 한자가 u5e0cu4e9a처럼 나타납니다. 해결 방법은 urlencode() 함수를 사용하여 json_encode 이전에 urlencode()를 사용하여 모든 배열의 내용을 처리한 다음 json_encode( )를 사용하여 JSON 문자열로 변환하고 마지막으로 urldecode()를 사용하여 인코딩된 중국어를 다시 변환합니다.

<?php 
/**************************************************************
* 
*
使用特定function对数组中所有元素做处理 
* @param string &$array 要处理的字符串
* @param string $function 要执行的函数 
* @return boolean $apply_to_keys_also 是否也应用到key上 
* @access public 
* 
*************************************************************/ 
function arrayRecursive(&$array, $function, $apply_to_keys_also = false) 
{    
static $recursive_counter = 0;    
if (++$recursive_counter > 1000) 
{        
die(&#39;possible deep recursion attack&#39;);    
}    
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--; 
} 
/************************************************************** 
* 
* 将数组转换为JSON字符串(兼容中文)
* @param array $array 要转换的数组 
* @return string 转换得到的json字符串
* @access public 
* 
*************************************************************/ 
function JSON($array) 
{ 
arrayRecursive($array, &#39;urlencode&#39;, true); 
$json = json_encode($array);
 return urldecode($json); 
} 
 $array = array ( &#39;Name&#39;=>&#39;希亚&#39;,&#39;Age&#39;=>20); 
 echo JSON($array);
?>

이번에는 코드가 성공적으로 실행되었습니다

추천 학습: "

PHP 비디오 튜토리얼Android에서 PHP 중국어 문자가 깨졌을 경우 어떻게 해야 합니까?"

위 내용은 Android에서 PHP 중국어 문자가 깨졌을 경우 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.