PHP 한자가 깨지는 문제에 대한 해결책 요약

伊谢尔伦
풀어 주다: 2023-03-08 06:28:01
원래의
1926명이 탐색했습니다.

친구들이 처음 PHP를 배울 때, 브라우저의 콘텐츠 출력에 왜곡된 문자가 많이 있다는 것을 종종 발견합니다. 특히 중국어를 출력할 때 더욱 그렇습니다. 잘못된 코드가 있는 이유는 무엇입니까? 일반적으로 잘못된 문자가 나타나는 데에는 두 가지 이유가 있습니다. 하나는 잘못된 인코딩(문자 집합) 설정으로 인해 브라우저가 잘못된 인코딩으로 구문 분석하여 화면이 지저분한 "천국의 책"으로 가득 차게 되는 것입니다. 두 번째는 파일이 잘못된 인코딩으로 열린 다음 저장된다는 것입니다. 예를 들어 텍스트 파일이 원래 GB2312로 인코딩되었지만 UTF-8 인코딩으로 열리고 저장되면 잘못된 문자가 나타납니다. 다음 글에서는 PHP에서 중국어 왜곡 문자 문제와 해결 방법에 대해 이야기하겠습니다.

php 중국어 깨짐 문제

1 PHP에서 중국어 깨짐 문제를 해결하는 방법은 무엇인가요?

첫 번째 방법: HTML에서 중국어 문자 깨짐 문제 해결

HTML 파일에 문자 깨짐이 있는 경우 헤드 태그에 UTF8 인코딩(국제 인코딩)을 추가할 수 있습니다. UTF-8에는 국가가 없습니다. 코딩은 독립적입니다. 어떤 언어로든 사용할 수 있으며 어떤 언어로든 사용할 수 있습니다.

두 번째, HTML과 PHP 혼합 페이지 솔루션

세 번째, 순수 PHP 페이지의 중국어 왜곡 문제(데이터가 정적임)

넷째, PHP+Mysql 중국어 왜곡 문제

이에 더해 세 번째 작업 외에도, 또한 데이터를 쿼리/수정/추가하기 전에 데이터베이스 코딩을 추가해야 합니다. 또한 여기의 UTF8은 이전 UTF8과 다르며 중간에 수평선이 없다는 점은 주목할 가치가 있습니다.

2. PHP에서 strrev를 사용하여 중국어 왜곡 문자를 뒤집는 문제에 대한 해결 방법

header("Content-Type: text/html; charset=utf-8");
$str = '处理使用strrev()函数时的乱码问题';
function cnstrrev($str)
{
  $len = strlen($str);
  for($i = 0; $i < $len; $i++)
  {
    $char = $str{0};
    if(ord($char) > 127) //ord()函数取得第一个字符的ASCII码,如果大于0xa0(127)的话则是中文字符
    {
      $i+=2;//utf-8编码的情况下,一个中文字符占三个字节
      if($i < $len)
      {
        $arr[] = substr($str, 0, 3);//utf-8编码的情况下,一个中文字符占三个字节
        $str = substr($str, 3);
      }
    }
    else
    {
      $arr[] = $char;
      $str = substr($str, 1);//否则为非中文,占一个字符
    }
  }
  return join(array_reverse($arr));//以相反的元素顺序返回数组:
}
echo $str.&#39;+&#39;.cnstrrev($str);
로그인 후 복사

3. PHP에서 json_encode UTF-8 중국어 왜곡 문자에 대한 해결 방법

이것은 간단한 코드 변환 후 반환됩니다. urlcode 배열이 필요합니다

public static function encodeOperations ($array)  
{  
    foreach ((array)$array as $key => $value) {  
        if (is_array($value)) {  
        encodeOperations($array[$key]);  
        } else {  
        $array[$key] = urlencode(mb_convert_encoding($value,&#39;UTF-8&#39;,&#39;GBK&#39;));  
        }  
    }
  return $array;  
}
로그인 후 복사

4. PHP URL 주소 표시줄의 중국어 왜곡 문자에 대한 솔루션 모음

url 인코딩
Syntax: string urlencode(string str);
반환 값: String
함수 유형: Encoding processing

urldecoding
URL 인코딩된 문자열을 복원합니다.
구문: 문자열 urldecode(string str);
반환 값: 문자열
함수 유형: 인코딩 처리

5. gbk 및 gb2312 중국어 왜곡 문제를 처리하기 위한 PHP의 json_encode 솔루션

문자가 표시되는 것을 볼 수 있습니다. UTF8을 사용하여 인코딩된 경우 json_encode를 사용할 때 중국어 왜곡 문자도 나타납니다. 해결 방법은 json_encode를 사용하기 전에 urlencode() 함수로 문자를 처리한 다음 json_encode를 사용하고 결과를 출력할 때 urldecode() 함수를 사용하여 다시 변환하는 것입니다.

6. PHP의 Ajax 중국어 왜곡 문제에 대한 솔루션

XMLHttp는 반환된 responseText를 처리할 때 UTF-8 인코딩에 따라 responseBody를 디코딩하기 때문입니다. 서버에서 보낸 데이터 스트림이 실제로 UTF-8 인코딩이면 중국어입니다. 문자는 올바르게 표시되지만 GBK 또는 기타 인코딩인 경우 위와 같은 상황이 발생합니다. 관련된 질문과 답변

【관련 추천】1. PHP 중국어 웹사이트의 무료 비디오 튜토리얼:

"php.cn Dugu Jiujian (4) - PHP 비디오 튜토리얼"

2. php 중국어 웹사이트의 관련 기사:

"One. PHP 입문 튜토리얼 주간" PHP 배우기》

위 내용은 PHP 한자가 깨지는 문제에 대한 해결책 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿