웹 개발시 인코딩 어떻게 설정하시나요?

walkure의 이미지

현재 J2EE 기반의 프로젝트를 많이 하고 있습니다.

항상 초기에 고민하는 것 중의 하나가 인코딩의 설정입니다.

대세로는 UTF-8로 가야 한다고 하고 그래서 언제나 UTF-8인코딩을 최우선으로 생각하고 있습니다.

이때 이전의 EUC-KR이나 MS949 인코딩을 사용하던 때와 비교하여 특별히 고려해야 될 점이 있을까요?

특히 DBMS의 인코딩 역시 UTF-8로 가야만 하는지가 가장 궁금합니다.

DBMS의 인코딩을 UTF-8로 가서 한글이 3-byte로 늘어나는 것에 대해서 굉장히 싫어하는 관리자나 고객들을 많이 보았습니다.(특별히 싫어하는 이유는 모르겠구요...)

여러분들은 어떻게 진행하시고 계신지를 좀 알려 주셔요 ^^

감사합니다.

죠커의 이미지

가끔 한글로 문서나, 자료를 올리시는 분들을 고려하는게 가장 큰 일이 아닐까 싶습니다. (IE 유저들은 UTF-8로 전송하는 옵션을 끄는 경우가 많으니깐요.)

그외의 경우라면 트랙백등의 인코딩 처리가 기억에 남네요.

noname_nobody의 이미지

mysql의 경우 구 버전은 UTF-8을 제대로 지원하지 않습니다. 구 버전에서 실제로 입출력이 되긴 합니다만 정렬이라던지 기타 문제가 있는 걸로 압니다. DB에 따른 이런 면을 주의하면 될테고..

그리고 문서라면 BOM을 주의하셔야 합니다. 때때로 이게 뭔지 몰라서 헤매는 사람이 있습니다. BOM에 대해서 간략히 말하자면 문자열의 endian(바이트 순서)을 명시하는 짧막한 표시라고 보시면 됩니다. 자세한 건 검색이나 구글링을..

차리서의 이미지

예전에 동아리 웹사이트를 만들고 관리하던 당시에 자작 게시판에 파일첨부 기능을 넣으면서 업로드/다운로드/파일명보기 등에서 모두 올바르게 한글 파일명을 사용할 수 있도록 iconv로 살짝 처리해줬던 기억이 있습니다.

제 경우 첨부파일명 문제보다는 MySQL 구버전 문제가 좀 더 컸었는데, 이미 다른 분께서 잘 지적해주셨군요. :) (그나저나 구버전이라고하신 것으로 보아 요즘은 이 문제가 꽤 해결되었나보네요. 요즘은 제가 DBMS랑 연 끊고 살고있어서…….)

--
자본주의, 자유민주주의 사회에서는 결국 자유마저 돈으로 사야하나보다.
사줄테니 제발 팔기나 해다오. 아직 내가 "사겠다"고 말하는 동안에 말이다!

noname_nobody의 이미지

mysql은 4.1부터 UTF-8을 제공합니다. 아직은 상당수의 사이트들이 mysql 3.xx 나 4.1이전 버전으로(4.xx) 쓰고 있는 걸로 압니다. .3xx 에서 못넘어가고 있는 곳들 중에는 한때 휘몰아쳤던 라이센스, 구매 관련 문제로 못하는 곳도 있는 걸로 압니다. 실제로 소규모 사이트는 서브 쿼리나 트랜잭션 기능 같은 게 필요 없기도 하고요.

최근에 태터 블로그가 UTF-8로 완전 전환이 되면서 구 버전의 mysql 쓰는 사람들이 좀 문제를 겪고 있는 듯 합니다만 저도 정확히 어느 부분에서 문제인지는 모릅니다. 잘 아시는 분이 보충해주시길.. :wink:

오라클이나 postgresql 같은 건 어떨지 모르겠네요. 전자는 UTF-8로 옛날에 이미 넘어가지 않았을까 싶기도 한데.. 후자는 모르겠군요.

한글 파일명 하면 이게 또 문제가 되는데.. 브라우저의 '항상 UTF-8 보내기' 옵션에 관련해서 이전에도 포럼에서 논의된 적이 있었죠. 이건 꽤나 복잡한 문제입니다. 웹 서버-브라우저-사용자의 삼위일체 골칫거리라고 할지.. UTF-8로 넘어가기에 발목 잡는 요소 중 하나. 언제 그걸 정리해서 해결 방안과 타협안을 글로 적어봐야겠는데 좀처럼 머리 속에서 정리가 안되네요.

죠커의 이미지

많은 사람이 사용하는 호스팅인 cafe24에서도 mysql이 버전이 낮아서 UTF-8로 전환하는데 문제가 있나 보더군요.

returnet의 이미지

에.. UTF-8으로만 주소를 받아들이려면 서버에서 어떻게 설정을 해야 되는건가요. 만들고 있는 페이지가 인코딩 문제로 꼬이기 시작해서 이리저리 검색해보다가 손 놓고 있습니다.
페이지는 UTF-8로 매겨져 있는데도 브라우져들이 죄다 EUC-KR로 보내니.. 그렇다고 EUC-KR로만 주소가 들어온다고 보고 변환해서 쓰자니 UTF-8 only 옵션을 매긴 경우에는 맞질 않고.. 주소 인코딩을 알아내려고 정규표현식을 동원해서 함수를 만들어써도 잘안되고;;
간만에 아이디어가 떠올라 뭔가 좀 만들어 보려 했더니 실력이 부족해서 삽질만 하는군요.

addnull의 이미지

walkure wrote:
특히 DBMS의 인코딩 역시 UTF-8로 가야만 하는지가 가장 궁금합니다.

DBMS의 인코딩을 UTF-8로 가서 한글이 3-byte로 늘어나는 것에 대해서 굉장히 싫어하는 관리자나 고객들을 많이 보았습니다.(특별히 싫어하는 이유는 모르겠구요...)

DBMS를 급하게 훑어보고 있는데..
아직 인코딩에 대한 확신이 안서네요.
시험삼아서 EUC-KR로 저장된 DB를 UTF-8로 바꿨더니
갑자기 지렁이 글씨들이.. =_=;;;

만약 무턱대고 EUC-KR로 했다가
나중에 피보는게 아닌가 싶네요.

2006년 1월 17일.

P.S.
아참.. 며칠전에 프루나 3.12가 제대로 동작이 안되서 확인해봤더니
당나귀도 UTF-8 기반으로 바뀌였더군요.
쩝.. 그래서 언릉 이뮬로 버스를 갈아탔습니다...

송효진의 이미지

returnet wrote:
에.. UTF-8으로만 주소를 받아들이려면 서버에서 어떻게 설정을 해야 되는건가요.

http://httpd.apache.org/docs/2.0/mod/mod_charset_lite.html
이게 맞을거에요.
returnet의 이미지

송효진 wrote:
returnet wrote:
에.. UTF-8으로만 주소를 받아들이려면 서버에서 어떻게 설정을 해야 되는건가요.

http://httpd.apache.org/docs/2.0/mod/mod_charset_lite.html
이게 맞을거에요.

오옷.. 감사합니다.:D 하루종일 뒤적거렸는데 바로 옆까지 가놓고 그냥 나왔었군요;;

2.0 모듈이군요. 이제 때가 된것인가.. 후우..

returnet의 이미지

결국 mod_encoding을 써서 url encoding에 상관없이 utf-8로 내부 처리하도록 하는걸로 대충 때웠습니다. 응답헤더는 여전히 euc-kr. 덕분에 파이어 폭스와 utf-8옵션 끈 IE 는 euc-kr 로 주소를 인코딩해서 보내고 주소창에는 euc-kr의 주소가 뜨고 내부 처리는 utf-8로 하고.. utf-8 옵션을 켠 IE는 뭐.. 그냥 통과되고.. 헤더에 location 이라도 조작할라치면 utf-8을 다시 euc-kr로 바꿔서 보내줘야하는..

괴상망측한 모양이 되었지만.. 일단은 어떤 브라우저나 옵션에 상관없이 한글주소며 파일명이 문제없이 작동하니.. 이대로 쓰려고 합니다.

좀더 공부를 해서 언젠가 서버를 재설치 할때가 되면 깔끔하게 만들어버릴 수 있도록 해야겠습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.