RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
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;
2008/06/24 06:08 2008/06/24 06:08
http://www.x2chi.com/trackback/307
비밀방문자  | 2008/07/30 14:29
관리자만 볼 수 있는 댓글입니다.
안치훈 x2chi  | 2008/07/30 21:08
저도 PHPSCHOOL 도움 받아 다시 찾아 보기위해 블로그기재 했습니다..다른분도 찾고 계신거라 다행이네요!
x2chi:Leading the Web to its Full Potential...
(웹의 모든 잠재력을 이끌어 내기 위하여...)
Leading the Web to its Full Potential... (웹의 모든 잠재력을 이끌어 내기 위하여...)
전체 (832)
내 이야기 (443)
관심거리들 (159)
웹&컴퓨팅 (173)
(주) 프로홈 (19)
건강 (7)
«   2012/02   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      
  1. Beau  05:37
    seroquel tinnitus, adderall seroquel, seroquel...
  2. Buck  05:37
    medicine seroquel, adderall seroquel, seroquel...
  3. generic xanax  04:19
    Cbut would mgs Some tramadol Inactive and to fa...
  4. generic xanax alprazolam  04:19
    ultram makes is Now I them between real friends...
  5. how long do xanax withdrawal symptoms last  04:19
    pain situation white thatis have or information...
  1. x2chi's me2day  2011
    슈퍼스타의 생각
  2. x2chi's me2day  2011
    슈퍼스타의 생각
  3. x2chi's me2day  2011
    슈퍼스타의 생각
  4. x2chi's me2day  2010
    슈퍼스타의 생각
  5. x2chi's me2day  2010
    슈퍼스타의 생각
  1. 2012/01 (1)
  2. 2011/10 (1)
  3. 2011/09 (9)
  4. 2011/08 (16)
  5. 2011/07 (10)