기술 정보
home
채널 소개
home

Tibero Client 사용 시 한글이 깨지는 문제 해결

문서 유형
장애 해결
분야
관리/환경설정
키워드
CharacterSet
client
encoding
tbdsn.tbr
TB_NLS_LANG
한글
깨짐
적용 제품 버전
6FS07
6FS07PS
1 more property

현상

Tibero Client를 통해 DB에 접속하거나 SQL 스크립트를 실행하는 과정에서 한글이 깨지는 현상이 발생할 수 있습니다. 인코딩 문제 발생 시 확인이 필요한 사항과 조치 방안에 대하여 안내 합니다.

원인

한글이 깨질 경우 원인 및 확인 사항

1. DB Character Set
2. Terminal encoding
3. TB_NLS_LANG
4. 스크립트 파일의 encoding
참고
DB가 MSWIN949라면 스크립트를 euc-kr로 지정합니다. (MSWIN949랑 동일하게 한글을 2바이트로 처리)

해결

DB CharacterSet 확인
데이터 베이스의 캐릭터 셋을 확인합니다. (NLS_CHARACTERSET)
$ tbsql sys/tibero SQL> SELECT * FROM DATABASE_PROPERTIES WHERE NAME LIKE '%NLS%'; NAME VALUE COMMENT_ST ------------------------- ---------- ---------- NLS_CHARACTERSET UTF8 NLS_NCHAR_CHARACTERSET UTF16 2 rows selected.
SQL
복사
Terminal encoding 확인
DB CharacterSet과 접속한 Terminal encoding이 다를 경우 한글 깨짐 현상이 발생합니다.
DB
TERMINAL
출력 내용
MSWIN949
UTF8
한글 깨짐
MSWIN949
EUC-KR or use font encoding
정상적으로 한글 출력
TB_NLS_LANG 환경 변수 설정 (tbdsn.tbr )
DB CharacterSet과 Terminal encoding를 맞추기 어렵다면 tbdsn.tbr 파일에 TB_NLS_LANG 로 인코딩을 지정합니다.
접속한 Terminal encoding을 TB_NLS_LANG로 설정하여 DB에게 사용 중인 터미널의 인코딩 정보를 전송합니다.
DB
TERMINAL
TB_NLS_LANG
출력 내용
MSWIN949
UTF8
UTF8
정상적으로 한글 출력
스크립트 파일의 encoding 확인
insert할 스크립트의 파일 인코딩을 확인합니다.
1) vi 편집기에 한글이 깨질 경우
vi 편집기 들어간 후 ESC > :set encoding=utf=8 입력 후 사용
SQL
복사
또는 설정 변경
$ vi /etc/vimrc set encoding=utf-8 set fileencodings=utf-8,cp949
SQL
복사
2) insert할 스크립트 파일의 인코딩 변경
f: 기존 인코딩
- 현재 인코딩 확인 $ file tmaxkorean.sql tmaxkorean.sql: UTF-8 Unicode text - 인코딩 종류 확인 $ iconv -l | grep {인코딩종류} - 인코딩변환 $ iconv -f {기존인코딩} -t {변경인코딩} tmaxkorean.sql > t.sql $ iconv -f utf-8 -t EUCKR tmaxkorean.sql > t.sql
SQL
복사