mysql 4.1.X 한글처리
프로그래밍 2007/01/12 00:50 JSP와 하루종일 놀았습니다. 조금씩 조금씩 알아간다는 것이 재미있긴 한데, 가끔 오늘처럼 쓸데없는 작업으로 시간을 소비하고나면 허무해 집니다.
오늘의 가장 큰 삽질!! mysql 4.1.X버전의 한글 처리문제.
회원가입 및 수정을 하는 폼과 DB를 만들어서 작동 상태를 점검 했습니다. 세션을 만들어서 사용하는 방법도 기술되어 있었고 대략 원리도 이해 했고 좋았습니다. 그러나 회원정보를 수정하는 부분에서 문제가 발생 했습니다.
회원정보 중에서 이름과 주소부분의 한글 출력이 제대로 되질 않는겁니다. 직접 SQL문을 타이핑 해서 테이블을 들여다 보았습니다. DB자체에서는 한글 문자가 제대로 저장되어 있었습니다. 웹으로 열리는 폼에서만 한글이 자꾸 깨져서 출력되네요.

무엇이든 최신버전을 써야 직성이 풀리는 성격탓에 하드웨어 드라이버든 일반적인 소프트웨어든 무조건 최신버전을 고집하곤 했었는데, 프로그래밍에 관련된 모든 것들은 웬지 최신버전이라는 것이 썩 내키진 않습니다. mysql뿐만 아니라 J2SDK, 기타 여러 툴들이 마찬가지로 종종 최신버전과 하위버전의 변화폭은 너무 크고 서로 호환성은 떨어지고, 공부할 수 있는 대부분의 자료들은 하위버전 기준으로 작성되어 있을때가 많아서 말이죠. 그럴때 마다 혼자 답답해서 죽습니다. 결국 마음속으로 '프로그래밍에 있어서 만큼은 최신 버전이라는 것이 결코 좋은것은 아니다'라는 결론을 간직하고 살아가고 있습니다.
나름 많은 것을 고려해서 MYSQL사이트에 공개되어있는 mysql들 중 가장 낮은 버전인 4.1을 선택한 것이었는데 호환성에 관련된 문제를 겪을줄은 꿈에도 몰랐었습니다. 웹을 훑어보니 한글 문자셋 관련 내용중 'euc-kr'로 표기되던것이 'euckr'이라는 형태로 최초로 바뀐 버전도 4.1버전이었고 말이죠.
한글 인코딩문제는 언젠가 한번쯤은 꼭 겪게 될 문제였지만 오늘같이 의미없이 시간을 낭비하는 모습으로 만나긴 정말 싫었는데 안습입니다. 한글 문자처리 관련된 부분을 어떻게 처리해야 하는지에 대해서 심도있게 알안낸 것도 없고 단순히 문제해결을 위해서만 웹을 뒤적거리다가 mysql버전 다운으로 해결을 해버렸습니다.
공부시간은 줄어들고, 삽질 시간만 잔뜩 있었던 하루...S
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 South Korea 라이센스에 따라 이용하실 수 있습니다.
트랙백 주소 :: http://signpen.net/blog/trackback/2510704
- 트랙백 발송지 : 문C닷넷 2007/01/12 15:47 삭제
제목 : Mysql 4.x 버전으로 넘어오면서 발생하는 제로보드 오류 수정 파일
Mysql 4.x 버전으로 업그레이를 하게 되면 3.x 버전에서 제로보드를 사용해 왔을 시 기존의 16byte 암호 체계에서 보안을 강화하기 위해 41byte 암호 체계로 업그레이드 되어 기존의 암호가 Mysql 4.x 버전의 암호 체계와 호환이 되지 않아 로그인이 안 되는 문제가 발생합니다. 4.0 이하의 버전에서는 password 함수가 16바이트의 문자열을 만들어 냈습니다. 4.1 이상에서는 41바이트의 문자를 만들어냅니다.(정확히는 40바이트..


