컴퓨터 APM UTF-8 설정
2008.04.16 01:54
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 로 바꾸던가 아니면 테이블을 다시 생성해야 한다.
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 로 바꾸던가 아니면 테이블을 다시 생성해야 한다.






