강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

UTF8 을 사용하기 위한 APM 설정
작성자 : 13 김영철
등록날짜 : 2009.01.29 15:34
3,127

UTF8 을 사용하기 위한 APM 설정
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=42439&sca=&sfl=wr_subject%7C%7Cwr_content&sop=and

 

PHPSCHOOL 의 알짜초보님 글입니다.

 

 

MySql에서의 한글사용에 대한 질문이 많고 종래의 EUC-KR로 만들어진 홈페이지를 첨단 만국어를 표기할 수 있는 UTF-8 사용에 대해 요약하였습니다.
==================================================================================
종래에는 홈페이지가 자국인들만 이용할 것을 예상하고 제작하므로써 외국인 즉, 비한글 사용자들에 대한 서비스를 미쳐 염두에 두지 못하므로써 한글이 ?????$%^&( 처럼 깨져 보이는 무지함을 보였던 것이 사실입니다.

이제는 홈페이지 제작도 유니코드(UTF-8) 인코딩 방식이 세계적 추세이며 이러한 추세에 맞추어 MySql도 기본언어를 utf8(UTF-8 인코딩) 방식으로 변경하였으므로, 홈페이지를 종래 euc-kr 등 한글로만 표기하던 방식도 UTF-8 인코딩 방식으로 업데이트해야 할 때 입니다. UTF-8 인코딩 방식은 한국어, 일어, 중국어, 태국어, 아랍어 등 만국어 표기가 가능한 방식입니다.

APM에서 UTF-8을 구현하려면 꽤 많은 부분을 수정해야 합니다 .
다음은 APM에서 UTF-8 구현 방법과 소스코드를 첨부합니다.
적용 환경
----------------
OS : WinXP SP2
Apache : httpd-2.0.52-3
PHP : php-5.0.3
MySQL : mysql-4.1.11
----------------
* 아래 내용 말고도 OS와 브라우저가 지원해 주어야 하지만, OS는 Win98 부터 지원하고 있으며 많이 쓰는 익스플로러도 역시 지원하고 있으니 손쉽게 설정을 변환할 수 있습니다.

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 파일형식으로 저장
8. 웹브라우저의 보기-인코딩-UTF-8로 선택
9. 아웃룩 익스프레스 : 도구->옵션->읽기->글꼴->인코딩:유니코드(UTF-8)->
기본설정 클릭. 국가별 설정->"모든 받는 메시지에 기본 인코딩 사용"에는 체크를 해제.
(여기에 체크하면 EUC-KR 이나 다른 언어로 작성된 메일은 깨지게 됨)
* 추가 : 6번 php소스 페이지에 @mysql_query("set names utf8"); 함수를 추가하는 문제는
먼저 header.php파일에 추가하면 대부분 작동하며, 예외적으로 작동이 안되는
파일이 간혹 있으므로 천천히 점검해서 필요한 페이지에 추가해 주면 됩니다.
* htmlentities() 버그 :
$xsitename = htmlentities($xsitename, ENT_QUOTES); 와 같은 사용례에서는 utf8로
입력되지 않는 경우가 있는데, php 버그라고 하며 펫치가 나와 있답니다.
추가 : htmlentities() 때문에 한글이 깨지면 htmlspecialchars로 대치해도 됩니다.

1. apache/conf/httpd.conf 에서 캐릭터셋 수정
/*------------
AddDefaultCharset UTF-8

2. etc/php.ini 에서 캐릭터셋 수정
/*------------
;default_charset = "iso-8859-1"
default_charset = "utf-8"
* 위와 같이 지정해야 한다고 주장하는 사람도 있으나 필자의 경우 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

[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_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 |
| concurrent_insert | ON |
| connect_timeout | 5 |
+---------+-----------+
12 rows in set (0.00 sec)

* MySql에서 데이터베이스 생성
mysql>CREATE DATABASE 디비명 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

* 아래 첨부파일은 기작성된 디비의 테이블과 글자셋을 변경하는 스크립트입니다.

[출처] 메롱

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
2775 [mysql] mysqladmin 사용법 13 김영철 01.29 3372
2774 [mysql]uft8에서 euckr로 변경 방법 13 김영철 01.29 2648
2773 루트 사용자 암호 바꾸기 13 김영철 01.29 2403
2772 한글 지원 설정 13 김영철 01.29 2098
2771 grant 명령으로 사용자 만들기 13 김영철 01.29 2250
2770 ☞ Mysql DB백업 받는법 13 김영철 01.29 2428
2769 엑셀파일 mysql 에 insert 하기 13 김영철 01.29 3148
2768 mySQL JDBC연동 13 김영철 01.29 2797
2767 새로운 사용자 등록하기 13 김영철 01.29 2396
2766 MySQL root 패스워드 분실시 13 김영철 01.29 2294
2765 root에서 mysql db가 안보일때 13 김영철 01.29 4918
2764 jsp + mysql connection 맺기 13 김영철 01.29 2635
2763 MYSQL 요긴한 명령어 모음 13 김영철 01.29 2335
2762 mysql 설치 13 김영철 01.29 2517
2761 windows 2003 MySQL 서비스 프로그램 등록 1067 에러 13 김영철 01.29 3341
2760 PHP5.2.x & Mysql5.0.x libmysql.dll 문제 해결방법 13 김영철 01.29 3162
2759 Mysql date_format() 13 김영철 01.29 2748
2758 MySQL root 계정 외부 접속하기 13 김영철 01.29 3234
열람중 UTF8 을 사용하기 위한 APM 설정 13 김영철 01.29 3128
2756 ABCUpload4와 MySQL4 13 김영철 01.29 3597
2755 MySQL에서 SQL에 if문 적용 13 김영철 01.29 2944
2754 두개의 Table을 조인하여 Excel 파일로 저장하기 13 김영철 01.29 2437
2753 [mysql]초보자도 알아야할 MySQL 튜닝 18가지 13 김영철 01.29 2807
2752 Mysql에 관한 매우 유용한 글 13 김영철 01.29 2643
2751 :: MS-SQL에서 MY-SQL로 데이터 이동 :: 13 김영철 01.29 2495
2750 MySQL에서 외래키 설정하기 13 김영철 01.29 3032
2749 엑셀파일을 읽어서 MySQL에 담기 13 김영철 01.29 2495
2748 mysql 테이블 스키마 보는법 13 김영철 01.29 2977
2747 [PHP][mySQL] 함수정리 13 김영철 01.29 2671
2746 [okjsp펌] mysql 스키마 백업 13 김영철 01.29 3122
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취