yunsh206

회원가입로그인

컴퓨터 APM UTF-8 설정

2008.04.16 01:54

RanomA 조회 수:1092

APM에서 UTF-8을 구현하려면 꽤 많은 부분을 수정해야 함.

1. apache 환경파일 편집 (httpd.conf)
2. php 환경파일 편집 (php.ini)
3. mysql 환경파일 편집 (my.cnf)
4. apache, mysql 서비스 재시작
5. mysql에서 캐릭터셋 확인 및 디비생성
6. php 소스코드에 mysql_query("set names utf8;"); 함수 추가
7. php 소스에 한글문자열이 있으면 파일저장할때 UTF-8 파일형식으로 저장

기본설정 클릭. 국가별 설정->"모든 받는 메시지에 기본 인코딩 사용"에는 체크를 해제.

(여기에 체크하면 EUC-KR 이나 다른 언어로 작성된 메일은 깨지게 됨)

1. apache/conf/httpd.conf 에서 캐릭터셋 수정
+-------------------------------------------------------+

AddDefaultCharset UTF-8


2. etc/php.ini 에서 캐릭터셋 수정
+-------------------------------------------------------+

;default_charset = "iso-8859-1"
default_charset = "utf-8"


3. etc/my.cnf (또는 my.ini) 에서 캐릭터셋 수정
+-------------------------------------------------------+

[client]
#password = your_password
default-character-set=utf8

[mysqld]
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci

[mysqldump]
default-character-set = utf8

[mysql]
default-character-set=utf8


4. 환경변수를 모두 수정후 apache 및 mysql 서비스 재시작
+-------------------------------------------------------+



5. mysql에서 캐릭터셋 확인
+-------------------------------------------------------+

# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 247 to server version: 4.1.10a

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use test
Database changed
mysql> show variables like 'c%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       | 
| character_set_connection | utf8                       | 
| character_set_database   | utf8                       | 
| character_set_filesystem | binary                     | 
| character_set_results    | utf8                       | 
| character_set_server     | utf8                       | 
| character_set_system     | utf8                       | 
| character_sets_dir       | /usr/share/mysql/charsets/ | 
| collation_connection     | utf8_general_ci            | 
| collation_database       | utf8_general_ci            | 
| collation_server         | utf8_general_ci            | 
| completion_type          | 0                          | 
| concurrent_insert        | 1                          | 
| connect_timeout          | 5                          | 
+--------------------------+----------------------------+
12 rows in set (0.00 sec)


6. MySql에서 데이터베이스 생성

mysql> CREATE DATABASE 데이타베이스명 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> ALTER TABLE 테이블명 CHARSET=utf8


만약 위의 과정을 하기 전에 테이블을 생성해뒀다면 테이블 전체의 CHARSET 설정 변경으로는 기존에 생성된 컬럼에는 변경이 없다.

mysql> SHOW CREATE TABLE 테이블명;


명령어를 내리면 생성된 테이블의 CREATE DDL 문이 출력된다.

각 컬럼을 확인해봤을 때 CHARSET이 latin1으로 지정돼 있다면 각 컬럼을 일일이 ALTER TABLE CHANGE 로 바꾸던가 아니면 테이블을 다시 생성해야 한다.