[PostgreSQL] client_encoding 설정

개발킴·2021년 6월 9일
2
post-custom-banner

대량의 테스트 데이터 INSERT를 위해 .sql 파일을 만들어 사용한다. 이때 sql 파일 내에 한글 데이터로 인해 인코딩 에러가 난다면, PostgreSQL의 client-encoding 설정이 필요하다.


📍 1. psql을 통한 sql 파일 실행

PostgreSQL에서 sql 파일을 실행할 때, 주로 psql 을 사용한다. 사용법은 아래와 같다.

> psql -U {USER_NAME} -d {DATABASE} -f {SQL_FILE_PATH}

이를 이용하면 sql 파일 내에 대량의 INSERT 쿼리를 작성해놓고, 한번에 테스트 DB를 세팅할 수 있어서 편하다.

📍 2. sql 파일 실행시 encoding 에러

간혹 한글 데이터 등이 포함된 sql 파일 실행시, 아래 에러가 발생한다.

> psql:INSERT.sql:2: 오류: 0xec 0xa0 바이트로 조합된 문자(인코딩: "UHC")와 대응되는 문자 코드가 "UTF8" 인코딩에는 없습니다
> psql:INSERT.sql:26030: 오류: 0xb0 0x20 바이트로 조합된 문자(인코딩: "UHC")와 대응되는 문자 코드가 "UTF8" 인코딩에는 없습니다

이때는 당황하지말고 client_encoding을 확인해보자.

📍 3. client_encoding 확인

일단 psql 커맨드를 통해 DB에 접속 후, client_encoding을 확인한다.

> psql -U {USER_NAME}
> psql -U postgres
postgres=# show client_encoding;

이제 client_encoding을 알맞게 바꿔주면 된다(EUC_KR / UTF8 등).

📍 4. 환경 변수 설정을 통한 client_encoding 변경

구글링 해보면 다양한 client_encoding 변경 방법이 있지만, Windows의 경우 그냥 환경변수에 설정하는게 제일 편하고 확실하다.

변수 이름 : PGCLIENTENCODING
변수 값 : UTF8

이제 PostgreSQL을 재기동한 후, 다시 client_encoding을 확인해보면 변경된 것을 확인할 수 있다. sql 파일을 실행시켜 보면 정상적으로 INSERT가 가능하다.

post-custom-banner

0개의 댓글