>  기사  >  백엔드 개발  >  PHP가 mysql 데이터베이스를 읽을 때 잘못된 문자에 대한 솔루션 정보

PHP가 mysql 데이터베이스를 읽을 때 잘못된 문자에 대한 솔루션 정보

WBOY
WBOY원래의
2016-07-29 09:14:53882검색

PHP가 mySQL을 읽을 때sql 데이터베이스를 읽을 때 문자가 깨지는 해결 방법에 대해

php가 mysql을 읽을 때 다음 위치에 문자 집합이 포함됩니다.
1. 데이터베이스 테이블 생성 시 데이터베이스 테이블의 문자셋을 지정합니다. 예를 들어

  • create table tablename
  • (
  • id int not null auto_increment,
  • title varchar(20) null이 아님,
  • 기본 키('id')
  • )DEFAULT CHARSET =UTF8;

코드 복사
2. mysql의 캐릭터 셋
mysql에는 중요한 변수 세 가지, Character_set_client, Character_set_results, Character_set_connection이 있습니다.
character_set_client를 설정하여 PHP가 데이터베이스에 저장하는 인코딩 방법을 MySQL에 알려줍니다.
character_set_results를 설정하여 PHP가 어떤 종류의 인코딩된 데이터를 얻어야 하는지 MySQL에 알려줍니다.
character_set_connection을 설정하여 PHP 쿼리의 텍스트에 사용할 인코딩을 MySQL에 알려줍니다.
3. 데이터베이스 접속 후 데이터베이스 간 문자 전송 시 사용되는 기본 문자 인코딩을 설정합니다.
mysqli::set_charset() 또는 mysqli::query('set names utf8')을 사용하여 설정하세요.
"SET NAMES" 대신 mysqli::set_charset(mysqli:set_charset)을 사용해 보세요.
  • $db = new mysqli('localhost','user', ' passwd','database_name');
  • $db->set_charset('utf8');

코드 복사
utf-8이 아니라 utf8이라는 점에 유의하세요
(여기서 문제는 데이터베이스와 PHP 모두 통합 인코딩을 가지고 있지만 mysqli::set_charset() 함수가 호출되지 않는 경우 , 데이터에 여전히 왜곡된 문자가 있습니다. 왜 그럴까요? )
(또한, 세트 이름 utf8은 다음 세 문장과 동일합니다.
SET Character_set_client = utf8;
SET Character_set_results = utf8;
SET Character_set_connection = utf8;

태그 > 설정 코드 복사
  • 5. PHP 텍스트 파일에서 사용하는 문자 집합입니다.

vim을 사용하여 Linux에서 파일을 열 수 있습니다.
:set 인코딩
을 입력하면 해당 파일에서 사용되는 문자 집합을 볼 수 있습니다. file
잘못된 코드가 없는지 확인하려면 파일 자체의 인코딩, HTML에 지정된 인코딩 및 PHP가 Mysql에 인코딩을 통합하도록 지시해야 합니다(character_set_client 및 Character_set_results 포함). ). 또한 mysqli:set_charset() 함수 또는 "SET NAMES"를 사용하십시오.
"3" 이후의 질문에 대해 데이터베이스에 연결한 후 문자 집합을 설정하지 않고 설정한 결과를 테스트하기 위해 몇 가지 예를 작성했습니다. 테스트 환경 Ubuntu 12.04, MySQL 5.5, php 5.5.7.
결과는 다음과 같습니다.
(1) 데이터베이스 테이블의 문자 집합은 utf8입니다. 집합 이름을 사용하지 않았습니다.
삽입해서 정상적으로 읽을 수 있는데, mysql에서는 글자가 깨져서 표시됩니다.
(2) 데이터베이스 테이블의 문자셋은 utf8 입니다. utf8을 사용하세요.
중국어를 정상적으로 삽입하고 읽으려면 mysql
에서 올바르게 표시됩니다.(3) 데이터베이스 테이블의 문자 집합이 utf8이 아닙니다. 집합 이름을 utf8 mysql에 표시하면 모든 문자가 물음표로 읽혀집니다.
Zero Zero H5에서 선택한 PHP 튜토리얼
위 내용은 관련 내용을 포함하여 PHP가 MySQL 데이터베이스를 읽을 때 왜곡되는 코드에 대한 해결책을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.