12
2017-Sep
[php/mysql] 모든 uft-8 한글 인코딩 문제
작성자: Blonix
IP ADRESS: *.64.228.3 조회 수: 1497
기본지식
ISO-8859-1 -> latin1 인코딩을 의미한다.
경우 1. php 파일의 기본 인코딩 수정. -> 아래 코드를 상단에 삽입. php.ini 설정을 건들수도 있다. 알아서 검색
header("Content-Type: text/html; charset=UTF-8");
이 문제인지 확인하기 위해서는 단순히 echo 해서 잘 나오는지를 보면 된다.
경우 2. mysql 연결시 언어셋 설정 -> 이걸 안하면 UTF-8로 php 서버에서 잘 만들어 두고 보낼때 latin1 로 바꿔서 전송한다.
mysqli_set_charset($connect, "utf8");
경우 3. mysql 서버의 언어셋 설정
mysql 서버에 접속해서 아래 구문 입력
show variables like 'char%';
온통 latin1 찍혀나오면 설정을 바꿔야 한다.
터미널에서
/etc/my.cnf 또는
/etc/mysql/my.cnf
를 vi로 켜서 가장 하단에 아래 구문을 추가, 저장한다.
[client]
default-character-set=utf8
-> 그리고나서 만약 기존에 생성한 테이블들이 있다면 일일히 이 테이블들의 언어셋을 바꾸어야 한다.
-> 위에서 해결한 것은 새로운 테이블을 만들 때, 기본 언어셋 설정임.
show create table [테이블이름];
해보면 아래에 기본 언어셋 설정이 나온다.
alter table [테이블이름] default charset=utf8;
이후에 모든 char 컬럼을 변경해주어야 한다. 일일히..
alter table [테이블이름] modify [컬럼이름] [컬럼속성들...];