PHP 개발에서 중국자는 데이터베이스 및 프론트 엔드 데이터 전송을 처리 할 때 일반적인 문제입니다. 특히 mysqli :: get_charset 및 json_encode를 사용할 때, 문자 세트가 올바르게 구성되지 않으면 중국 내용이 매달려있을 수 있습니다. 이 기사는이 문제를 해결하는 방법을 설명하고 MySQL 데이터베이스와 상호 작용할 때 중국어를 올바르게 전달할 수 있도록합니다.
먼저, 데이터베이스 연결이 연결되면 MySQL이 한자를 올바르게 처리 할 수 있도록 문자 세트가 UTF-8로 올바르게 설정되어 있는지 확인하십시오. MySQLI 확장 기능을 사용하여 데이터베이스에 연결 한 다음 MySQLI :: get_charset을 사용하여 현재 문자 세트 설정을 얻습니다. 캐릭터 세트가 UTF-8인지 확인하는 것은 Breadbled 문제를 해결하는 핵심 단계입니다.
<?php
// 데이터베이스에 연결하십시오
$mysqli = new mysqli('localhost', 'root', '', 'test_db');
// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_error) {
die('연결이 실패했습니다: ' . $mysqli->connect_error);
}
// 문자를 설정하십시오 UTF-8
$mysqli->set_charset('utf8');
// 현재 문자 세트를 가져옵니다
$current_charset = $mysqli->get_charset();
echo "현재 문자 세트: " . $current_charset->charset;
// 데이터베이스 쿼리를 수행하고 중국 데이터를 출력하십시오
$query = "SELECT name FROM users WHERE id = 1";
$result = $mysqli->query($query);
$row = $result->fetch_assoc();
// 출력 쿼리 결과
echo json_encode($row);
?>
데이터베이스에서 중국 데이터를 쿼리하고 JSON_ENCODE를 통해 인코딩하면 문자 세트가 올바르게 설정되지 않으면 한자가 해제 될 수 있습니다. 이를 피하기 위해 JSON_UNESCAPED_UNICODE 매개 변수를 사용하여 중국어가 탈출되지 않도록 할 수 있습니다.
<?php
// 데이터베이스에 연결하십시오
$mysqli = new mysqli('localhost', 'root', '', 'test_db');
// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_error) {
die('연결이 실패했습니다: ' . $mysqli->connect_error);
}
// 문자를 설정하십시오 UTF-8
$mysqli->set_charset('utf8');
// 현재 문자 세트를 가져옵니다
$current_charset = $mysqli->get_charset();
echo "현재 문자 세트: " . $current_charset->charset;
// 데이터베이스 쿼리를 수행하고 중국 데이터를 출력하십시오
$query = "SELECT name FROM users WHERE id = 1";
$result = $mysqli->query($query);
$row = $result->fetch_assoc();
// 사용 json_encode 출력 중국어,한자가 탈출되지 않도록하십시오
echo json_encode($row, JSON_UNESCAPED_UNICODE);
?>
사용중인 데이터베이스 테이블 문자 세트가 UTF-8이 아닌 경우 문자 변환 문제가 발생할 수 있습니다. 개발 환경 전체에 걸쳐있는 차량 코드가 없는지 확인하려면 다음 항목을 확인하는 것이 좋습니다.
데이터베이스의 문자 세트 : UTF8MB4 또는 UTF8을 사용하십시오.
데이터 테이블의 문자 세트 : 다음 SQL 쿼리는 테이블의 문자 세트를보고 수정하는 데 사용될 수 있습니다.
SHOW CREATE TABLE users;
ALTER TABLE users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
연결된 문자 세트 : PHP에서 mysqli-> set_charset ( 'utf8') 에 의해 설정된 문자를 설정하십시오.
위 구성 외에도 브라우저가 중국 데이터를 올바르게 디코딩 할 수 있는지 확인하는 것도 중요합니다. 일반적인 관행은 웹 페이지의 <head> 태그에 다음 메타 태그를 추가하는 것입니다.
<meta charset="UTF-8">
이를 통해 브라우저가 한자를 올바르게 구문 분석하고 코드를 방해하지 않도록합니다.
중국어 처리를 위해 json_encode 와 함께 mysqli :: get_charset을 사용하는 경우, 문자 세트를 올바르게 구성하는 것이 차량 코드 문제를 피하는 열쇠입니다. 데이터베이스 연결 문자 세트가 UTF8 또는 UTF8MB4 로 설정되어 있는지 확인하고 JSON_ENCODE를 사용할 때 JSON_UNESCAPED_UNICODE 매개 변수를 추가하여 중국어의 문제를 효과적으로 피할 수 있습니다.
이 기사의 도입을 통해 MySQLI 및 JSON_ENCODE를 사용할 때 중국어가 달린 코드로 인한 문제를 피하는 데 도움이됩니다.