Linux 환경 ( EUC-KR ) 에서 C언어로 작성한 프로그램에서 postgresql DB에 한글을 Insert 할 때
"EUC_KR" 인코딩에서 사용할 수 없는 문자가 있음" 와 같은 에러가 발생합니다. Database의 언어셋은
| 인코딩 | Collate | Ctype |
|EUC_KR | ko_KR.euckr | ko_KR.euckr |
| UTF8 | ko_KR.UTF-8 | ko_KR.UTF8 |
처럼 구성을 하고 2가지 경우 모두 테스트 한 결과
한글의 길이가 길어 c 배열 사이즈에 맞게 잘라 Insert 를 하는데
한글 중간에서 길이가 잘릴 경우 위와 같은 에러와 함께 insert 가 되지 않습니다.
ex) '가나다' 라는 문자열을 insert 할때 길이가 6이 아닌 5로 잘라서 사용할 경우 insert 실패
혹시 위와 같은 문제를 해결할 수 있는 방법은 없을까요? 특정길이 이상인 경우 강제로 한글이 안나오는부분을 찾아 잘라서 사용합니다만 근본적인 문제를 해결할 수 있는 방안이 있는지 궁금합니다.
|