>백엔드 개발 >PHP 문제 >PHP json이 데이터베이스에 중국어 왜곡 문자를 저장하면 어떻게 해야 할까요?

PHP json이 데이터베이스에 중국어 왜곡 문자를 저장하면 어떻게 해야 할까요?

PHPz
PHPz원래의
2023-04-19 09:17:54729검색

개발 과정에서 JSON 데이터가 데이터베이스에 저장되는 상황이 발생할 수 있습니다. 이는 일반적으로 영어 문자열을 다룰 때 문제가 되지 않지만, 한자를 포함할 경우 문자가 깨질 수 있습니다. 이 글에서는 MySQL 데이터베이스에 한자를 저장할 때 발생하는 JSON 왜곡 문제를 해결하는 방법을 소개합니다.

  1. 데이터베이스 문자 집합

먼저 데이터베이스 문자 집합이 올바른지 확인해야 합니다. MySQL의 기본 문자 집합은 Latin1이며 중국어 문자 집합을 지원하지 않습니다. 인코딩이 UTF-8이 아닌 경우 MySQL의 문자 집합을 변경해야 합니다. MySQL 명령줄에서 다음 명령을 입력하여 문자 집합을 변경합니다.

SET NAMES 'utf8';

그런 다음 다음 명령을 실행합니다.

ALTER DATABASE `your_database` CHARACTER SET utf8 COLLATE utf8_general_ci;
  1. Encoding Issues

또 다른 일반적인 문제는 인코딩 문제입니다. 텍스트 편집기는 서버와 다른 인코딩을 사용하거나 MySQL 데이터베이스와 다른 인코딩을 사용할 수 있습니다. 문자가 왜곡되는 것을 방지하려면 모든 파일이 동일한 인코딩을 사용하는지 확인하세요. PHP 파일의 경우 UTF-8 인코딩을 사용하는 것이 좋습니다.

  1. JSON 데이터를 데이터베이스에 저장

개발 중에 JSON 데이터를 저장하는 가장 좋은 방법은 PHP의 json_encode 함수를 통해 데이터를 JSON 문자열로 변환한 다음 데이터베이스 테이블에 삽입하는 것입니다. 중국어 문자의 경우 UTF-8 인코딩 형식이 필요합니다.

다음은 JSON 데이터를 MySQL 데이터베이스에 저장하는 샘플 코드입니다.

//连接数据库
$conn = mysqli_connect($servername, $username, $password, $dbname);

//设置字符集
mysqli_set_charset($conn, "utf8");

//将 JSON 数据转换为字符串
$json_data = json_encode($data, JSON_UNESCAPED_UNICODE);

//插入数据到数据库表中
$sql = "INSERT INTO `table` (`id`, `data`) VALUES (NULL, '$json_data')";
$result = mysqli_query($conn, $sql);

//关闭数据库连接
mysqli_close($conn);
  1. JSON 데이터 읽기

데이터베이스에 저장된 JSON 데이터를 읽으려면 PHP의 json_decode 함수를 사용하여 JSON 문자열을 변환할 수 있습니다. PHP 배열 또는 객체로 변환합니다. json_decode를 사용할 때 데이터가 객체가 아닌 배열로 반환되도록 하려면 두 번째 매개변수를 true로 설정해야 합니다.

다음은 MySQL 데이터베이스에서 JSON 데이터를 읽는 샘플 코드입니다.

//连接数据库
$conn = mysqli_connect($servername, $username, $password, $dbname);

//设置字符集
mysqli_set_charset($conn, "utf8");

//查询数据库
$sql = "SELECT `data` FROM `table` WHERE id = '1'";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);

//将 JSON 字符串转换为 PHP 数组
$json_data = json_decode($row['data'], true);

//关闭数据库连接
mysqli_close($conn);

요약:

JSON 데이터를 저장할 때 데이터베이스 문자 집합이 UTF-8인지, 텍스트 편집기가 올바른 인코딩 형식을 사용하는지, 그리고 PHP 사용 json_encode 함수는 데이터를 JSON 문자열로 변환합니다. JSON 데이터를 읽을 때 PHP의 json_decode 함수를 사용하여 JSON 문자열을 PHP 배열로 변환합니다.

위 내용은 MySQL 데이터베이스에 한자를 저장할 때 발생하는 JSON 왜곡 문제를 해결하기 위한 몇 가지 팁입니다.

위 내용은 PHP json이 데이터베이스에 중국어 왜곡 문자를 저장하면 어떻게 해야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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