The Pursuit of Happyness

프로그래밍/PHP +22
반응형
전에 이야기 한 데로 여기는 그냥 유용한 코드들에 대한 설명 형식으로 진행이 되므로,
순서가 뒤죽박죽이 될 것입니다.

오늘은 언어 인코딩에 대해서 이야기해 보겠습니다.

PHP를 사용하는 경우 APM 등을 이용하여 Apache, MySQL을 같이 사용하는 경우가 많습니다. 언제 부터인가 다국어 지원에 대한 이슈가 논의되면서 MySQL은 기본 설정이 utf-8 로 되고, 한국어를 쓰기 위해서 서버 설정을 euc-kr 등으로 변경을 해줘야 하는 번거로움이 있었습니다.

다국어를 다루는 것은 상당히 귀찮은 일입니다. ASC 부터 유니코드를 거쳐 utf-16 에 이르기까지 수많은 인코딩 방식이 있는데, 이것은 마치 메모리를 절약하기 위한 자리수 표시 방식이 밀레니엄 버그의 원인이 되었던 것처럼 효율적인 메모리 사용을 통한 지역별 언어 설정이 프로그래밍을 상당히 귀찮게 해주고 있습니다.

언어셋에 대한 부분은 나중에도 다룰 예정이므로, 오늘은 아주 간단한 form 전송시 사용이 가능한 간단한 utf-8 예제를 살펴 보도록 하겠습니다.

먼저 form 전송시에 utf-8 로 인코딩을 하기 위해서는 form 태그에서 아래와 같이 accept-charset을 utf-8 로 설정해 줍니다.

<form method=post action=target.php accept-charset='UTF-8'>


그리고 html 헤더에 다음의 코드를 삽입하게 되면, utf-8로 인코딩 된 페이지가 제대로 나타나게 됩니다.

<meta http-equiv='Content-Type' content='text/html;charset=utf-8'/>


사용에 대한 예제는 아래 페이지를 참고하시면 될 듯 하고요. 아래 페이지에서 이야기하는 서블릿상에서의 utf-8 인코딩이 바로 위의 메타태그를 사용하는 것입니다.

http://www.razorvine.net/test/utf8form/utf8pageform.html


설명을 하다보니 PHP 에 대한 내용이라기 보담은 html 에 대한 내용이 되어버렸네요..

대신 meta 태그를 위와 같이 설정하면 PHP 코드상에서의 한글 등의 문자가 깨져서 나오게 됩니다. 한글 출력시에는 iconv 를 이용해서 출력을 해주면 됩니다. 제가 쓰는 아주 간단한 인코딩 함수 입니다.

function getUTFString($str)
{
  return iconv("CP949", "UTF-8", $str);
}

이 정도의 설정만으로도 웹상에서의 다국어 지원 부분이 어느 정도 쉽게 해결이 될 것이라 생각됩니다. 나중에 AJAX 사용시에 넘겨주는 인자를 인코딩하는 방법과 결과값을 받을 때 사용하는 인코딩에 대해서 정리해 보도록 하겠습니다.

그럼~
반응형

반응형
최근에 오랜만에 웹프로그래밍 프로젝트에 참여하게 된 이후에 PHP를 계속 쓸 기회가 있어서 PHP 를 사용하는 몇가지 팁에 대해서 정리할 예정입니다. 필자 기준으로 유용한 코드들 이거나 약간 애매한 API들을 실제 적용한 사례들을 정리해보는 기회가 될 듯 합니다.

아주 기본적인 PHP 사용법에서 부터 AJAX를 응용한 사용법에 이르기까지 모든 것을 다루고는 싶으나.. 그런 것은 바이블 같은 거 사서보시고 간단하지만 유용한 코드들을 중심으로 다루게 될 것입니다.


오늘은 간단하게 PHP 소개를 하고 마치도록 하겠습니다.

필자에게 PHP란 어딘지 쉽게 접근이 가능한 웹스크립트 정도로 생각을 했었으나,
최근에는 간단한 binary 파일을 생성하는 것 까지도 PHP를 이용해서 처리를 하고 있습니다.
예전에는 MySQL과 잘 연동이 되어 편하게 사용할 수 있었는데, 
요즘은 SQLite를 이용하여 더 간단하게 DB 연동 작업을 하게되었습니다.
또한 Apache, IIS 등의 웹서버와 연동하여 웹상에서 필요한 것들을 보여주고, 
AJAX 기술을 응용하여 동적인 페이지 생성에 이르기까지 정말 광범위하게 사용이 가능한 프로그래밍 툴인 PHP의 매력 속으로 흠뻑 빠져들어가고 있습니다.

PHP 에 대한 기본적인 사항들은 아래의 사이트에서 자세한 자료를 살펴 볼수 있습니다.

www.php.net 
www.phpschool.com

오늘은 밤이 깊은 관계로 시간이 날때마다 유용한 PHP 사용 팁을 올리도록 하겠습니다.
그럼~


반응형