> 백엔드 개발 > PHP 문제 > PHP 출력에서 ​​한자가 왜곡되는 문제를 해결하는 방법은 무엇입니까?

PHP 출력에서 ​​한자가 왜곡되는 문제를 해결하는 방법은 무엇입니까?

青灯夜游
풀어 주다: 2023-03-07 13:12:02
원래의
5700명이 탐색했습니다.

해결책: 1. HTML과 PHP가 혼합된 페이지의 경우 메타 태그 또는 header() 함수를 사용하여 페이지 인코딩을 통합해야 합니다. 2. 순수 PHP 정적 페이지의 경우 header() 함수를 사용하여 설정합니다. 3. mysql_query()를 사용하여 PHP 연결용 인코딩을 mysql로 ​​설정합니다.

PHP 출력에서 ​​한자가 왜곡되는 문제를 해결하는 방법은 무엇입니까?

일반적으로 잘못된 문자가 나타나는 데에는 두 가지 이유가 있습니다. 첫째, 잘못된 인코딩(문자 집합) 설정으로 인해 브라우저가 잘못된 인코딩으로 구문 분석하여 지저분한 " 천상의 책'이 화면을 가득 채운다. 둘째, 문제는 파일을 잘못된 인코딩으로 열어 저장한 것이다. 예를 들어 원래 텍스트 파일은 GB2312로 인코딩됐는데 UTF-8 인코딩으로 열어 저장한 경우다. 위의 잘못된 코드 문제를 해결하려면 먼저 개발의 어떤 측면에 인코딩이 포함되는지 알아야 합니다.

1. 파일 인코딩: 페이지 파일(.html, .php 등) 자체가 저장되는 인코딩을 말합니다. 메모장과 드림위버는 페이지를 열 때 파일 인코딩을 자동으로 인식하므로 문제가 줄어듭니다. 그러나 ZendStudio는 기본 설정 구성에 따라 특정 인코딩으로만 파일을 열게 됩니다. 문자가 나타납니다.

2. 페이지 선언 인코딩: HTML 코드 HEAD에서 를 사용할 수 있습니다(이 문장은 반드시 작성해야 함). 그렇지 않으면 웹페이지가 어떤 인코딩을 사용하는지 브라우저에 알려주기 위해 페이지가 비어 있게 됩니다(IE+PHP에만 해당). 현재 GB2312 및 UTF-8은 중국어 웹사이트 개발에 주로 사용됩니다.

3. 데이터베이스 연결 인코딩: 데이터베이스 작업을 수행할 때 데이터베이스에 데이터를 전송하는 데 사용되는 인코딩을 나타냅니다. 여기서는 데이터베이스 자체의 인코딩과 혼동해서는 안 됩니다. MySQL은 latin1 인코딩입니다. 즉, MySQL은 데이터를 latin1 인코딩으로 저장하고, 다른 인코딩으로 MySQL에 전송된 데이터는 latin1 인코딩으로 변환된다고 합니다. WEB 개발에서 인코딩이 어디에 관련되어 있는지 알면 그 이유도 알 수 있을 것입니다. 잘못된 코드의 경우: 위의 세 가지 항목은 인코딩 설정이 일치하지 않습니다. 대부분의 다양한 인코딩이 ASCII와 호환되므로 영어 기호가 표시되지 않으며 중국어 문자가 잘못 표시됩니다.

첫 번째, HTML과 PHP 혼합 페이지 솔루션 방법 1: 태그 사용

PHP 코드가 HTML에 포함된 경우

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>php输出中文乱码</title>
	</head>

	<body>
		<div class="demo">

			<?php
			echo "php中文网!";
			?>
		</div>

	</body>

</html>
로그인 후 복사

방법 2: 헤더 사용 () 함수

HTML과 PHP를 혼합하는 방법은 무엇입니까? 첫 번째 방법에서 언급한 작업을 따르는 것 외에도 PHP 파일 상단에 다음 코드를 추가해야 합니다. <meta charset="UTF-8">来解决中文乱码问题

<?php
header("content-type:text/html;charset=utf-8");         //设置编码
?>
로그인 후 복사
로그인 후 복사

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


PHP 페이지에 잘못된 문자가 있는 경우 페이지 시작 부분에 다음 코드를 추가하세요.

<?php
header("content-type:text/html;charset=utf-8");         //设置编码
?>
로그인 후 복사
로그인 후 복사

세 번째, PHP+Mysql 중국어 잘못된 코드 문제


언급된 세 가지 작업 외에도 데이터를 쿼리/수정/추가하기 전에 데이터베이스 인코딩을 추가해야 합니다. 또한 여기의 UTF8은 이전 UTF8과 다르다는 점에 주목할 가치가 있습니다.

 <?php
    mysql_query(&#39;SET NAMES UTF8&#39;);
    //接下来的就是查出数据或者修改,增加
?>
로그인 후 복사

사용 중인 MySQL 버전이 4.1 이상인 경우 다음과 같이 데이터베이스 작업에 연결한 후 문자 인코딩을 설정할 수 있습니다

참고:

php 앞에 추가하세요. 데이터베이스 작업을 수행해야 하는 프로그램 mysql_query("set names 'encoding'"); PHP 인코딩이 gb2312이면 mysql 인코딩은 utf-8입니다. mysql 인코딩은 utf8입니다. 이렇게 하면 데이터를 삽입하거나 검색할 때 문자가 더 이상 깨지지 않습니다

더 많은 프로그래밍 관련 지식을 보려면 PHP 출력에서 ​​한자가 왜곡되는 문제를 해결하는 방법은 무엇입니까?프로그래밍 교육

을 방문하세요! !

위 내용은 PHP 출력에서 ​​한자가 왜곡되는 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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