[psql]오류: 0xed 0x92 바이트로 조합된 문자(인코딩: "UHC")와 대응되는 문자 코드가 "UTF8" 인코딩에는 없습니다

이상해씨·2023년 6월 20일
0

에러

오류: 0xed 0x92 바이트로 조합된 문자(인코딩: "UHC")와 대응되는 문자 코드가 "UTF8" 인코딩에는 없습니다

상황

Csv 파일 import하는 과정에서 발생

\COPY <테이블명(칼럼명,...> FROM '<파일주소>' DELIMITER ',' CSV HEADER;
  • COPY : import 할 테이블명, 칼럼명
  • FROM : import 할 파일 주소
  • DELMITER : CSV 구분자
  • CSV HEADER : 파일의 첫행을 header로 인식

원인

import 하고자 하는 파일의 인코딩이 맞지 않아 발생.

해결방법

  • encoding을 직접 변경하는 방법파라미터로 인코딩을 변경하는 방법이 있음

1. encoding 직접 변경

1-1) encoding 확인

show server_encoding; # 서버 인코딩 확인
show client_encoding; # 클라이언트 인코딩 확인

1-2) encoding 변경

  • 인코딩 확인시(1의 show encoding) 아래와 같이 UHC 일 경우, EUK -9 혹은 UTF8로 인코딩 변경.

server_encoding
==========
UHC
(1개 행)

set server_encoding = ‘UTF8’; # server의 인코딩을 UTF8로 변환

1-3) encoding 변경 확인

  • 위 encoding 확인에서 입력했던 명령어를 다시 입력해본다.
  • 만약, UTF8이 뜰 경우 성공적으로 변경됨!!
show server_encoding; # 서버 인코딩 확인

1-4) 다시 import 시도

 \COPY <table >(<칼럼명, ...>) FROM '<파일주소>' DELIMITER ',' CSV HEADER;


2. 파라미터로 encoding 변경👍

  • 간단하고 효과적인 방법
  • client_encoding='UHC'일 경우
  • import를 할 때 파라미터 추가
  • ENCODING 'UTF-8' 추가
 \COPY <테이블명>(칼럼명, ...) FROM '<.csv 파일 주소>' DELIMITER ',' CSV HEADER ENCODING 'UTF-8';
  • 안될 경우, ENCODING 'EUC-KR'


참고

profile
공부에는 끝이 없다

0개의 댓글