database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 5782 게시물 읽기
No. 5782
서버 encoding이 uif-8인 환경에서 HTML encoding이 euc-kr인 Web 사이트 제작질문
작성자
떼송이
작성일
2005-01-06 12:22
조회수
4,823

안녕하세요.

 

인코딩 관련 질문좀 드리려고 들렸습니다.

이곳 검색에서 euc_kr 로 검색하고, encoding으로도 검색해서 encoding 관련글을 쭈루룩 읽어 봤는데 뽀죡한 해결책이 생각이 나지 않네요.

 

서버 encoding이 utf-8을 쓰는 것이 한글을 저장할때 유리한 점은 알겠는데,

웹에서 query시에 client encoding도 utf-8로 만들어 준다음, 데이터 입력, 삭제, 갱신 작업을처리하면, utf-8끼리 잘 맞겠죠.

 

문제는 저장되어 있는 utf-8형식의 문자를, 헤더가 이렇게 기술되어 있는

<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">

웹페이지에서는 몽땅 깨져 뿌린다는 것입니다.

 

그래서

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

로 바꾸어 놨더니, DB자료는 그나마 잘 나오는데... euc-kr로 코딩된 컨텐츠가 모두 깨져 버린다는 겁니다. 오..

 

1. 차라리 DB encoding 을 euc_kr로 할까요?

 

2. 아니면 컨텐츠를 다시 만들어야 하나요? UTF-8로? (오옵,.. 그 많은 걸 언제 다시 타이핑하지요? 자동으로 euc-kr을 utf-8코드로 깨지지 않게 변환시켜주는 프로그램이 있다면 생각해 볼만도하겠지만.요 한가지 더.. UTF-8문서는 왜 euc-kr과의 생김새가 틀릴까요..)

 

3. DB encoding은 utf-8로 가만히 두고, INSERT, UPDATE, DELETE는 query시에 encoding을 utf-8로 맞추어서 해주고, varchar 타입인 필드만 select 할때 Convert(field명 using utf_8_to_euc_kr) 함수를 사용해서 euc_kr 문자를 넘길까요?

 

읽어 주셔서 감사드리구, 또 질문의 답변이 WEB APPLICATION을 개발하시는 다른분들에게도 유용한 답변이 되기를 기대할께요

새해 복 많이 받으세요

이 글에 대한 댓글이 총 3건 있습니다.

encoding 으로 검색하셨으면 해결책이 나왔을텐데요.

 

$PGDATA 에서 postgresql.conf 를 수정합니다.

 

client_encoding = uhc 로 변경합니다.

 

신기배님께서 자세히 설명해주신 아래 Link를 참조하세요.

 

http://www.postgresql.or.kr/wiki.php/nonun/Documents/Encoding%5FConversion

 

 

만약, utf-8 과 euc-kr 을 혼용하는 site가 있다면, query를 하기 직전에 set client_encoding=uhc 라는 명령으로 설정하면 됩니다.
박인서(bubux)님이 2005-01-06 12:35에 작성한 댓글입니다.
이 댓글은 2006-01-27 10:39에 마지막으로 수정되었습니다.

문자열 encoding 을 변환하시려면 iconv를 사용해 보세요.

euc-kr -> utf8 이라면

iconv -f euc-kr -t utf-8 변환할euc-kr파일명 -o utf-8변환된파일명

iconv는 *nix 게열이라면 기본으로 있을겁니다.

pSy님이 2005-01-07 10:11에 작성한 댓글입니다.
이 댓글은 2005-01-07 10:12에 마지막으로 수정되었습니다. Edit

정리를 하면...

 

방법 1)

 

홈페이지 자체를 UTF-8로 만듭니다. 말씀하신 것처럼 문서의 charset 표기에 utf-8로 지정하고 실제 모든 문자도 utf-8로 저장하구요.

 

UTF-8로 하면 가장 확실한 방법이 되기는 하는데요. UTF-8 문자열이 좀 특별하기 때문에 java 같은 UNICODE 기반의 문자열을 다루는 언어가 아니면 일반 문자열과 다른 방법으로 다루어야 합니다.

 

기존의 EUC-KR 문서를 UTF-8로 변경하는 것은 pSy님의 말씀 처럼 iconv 같은 도구를 사용하시면 됩니다.

 

방법 2)

 

가장 간단한 방법인데요. 박인서님의 말씀처럼 client 쪽의 인코딩을 EUC-KR로 지정하는 겁니다. client쪽 인코딩을 특별히 지정하지 않으면 자동으로 서버쪽 인코딩을 따르게 됩니다. 그래서 UTF-8로 인코딩이 된 문자열이 오고 가게 되는 거죠.

client encoding을 변경하는 방법은 위의 방법 외에도 PGCLIENTENCODING 이라는 시스템 환경 변수를 사용하는 방법도 있습니다.

검색 해 보시면 많이 나와 있습니다.

 

방법 3)

 

이건 노가다인데 문서는 EUC-KR이고 pgsql의 client encoding은 UTF-8인 상태에서 변경이 불가능하다면 SQL문만 UTF-8로 변환해서 질의하는 방법이 있습니다. 뭐 간단한 함수 하나 만들어서 처리하면 되는데... 어쩔 수 없는 상황 아니면 정말 맘에 안드는 방법이 되겠죠?

 

박성철(gyumee)님이 2005-01-08 09:45에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
5786안녕하세요 [1]
김주미
2005-01-06
2025
5785테이블 join시... [2]
마법사
2005-01-06
2225
5783트리거에 관한 질문이요 [3]
초짜
2005-01-06
3707
5782서버 encoding이 uif-8인 환경에서 HTML encoding이 euc-kr인 Web 사이트 제작질문 [3]
떼송이
2005-01-06
4823
5781sp 와 query중에서 어떤 방법이 더 효율적일까요. [3]
떼송이
2005-01-05
2333
5780postgresql-8.0.0-rc2로 Window XP 설치 [1]
왕초보
2005-01-05
2456
5779DB 클러스터링 해보셨나요?
박성철
2005-01-05
2418
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.022초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다