Oracle DB 한글처리


한글 테스트를 위해 위와 같이 입력을 했습니다.



하지만 DB인코딩 설정문제로 한글이 깨져서 나오는 것을 확인 했습니다.



역시 DB내에서도 한글처리가 되지 않았음을 확인 했습니다.

vi /etc/profile


vi /etc/profile명령을 이용하여 파일을 열어서 환경변수에 위의 내용을 추가 합니다.


DB 설정 내용
bash-4.2$ sqlplus /nolog;
 
SQL*Plus: Release 11.2.0.2.0 Production on Sat Nov 3 06:20:48 2018
 
Copyright (c) 1982, 2011, Oracle. All rights reserved.
 
SQL> conn /as sysdba;
SQL> update sys.props$ set value$='UFT8' where name='NLS_CHARACTERSET';
SQL> update sys.props$ set value$='UTF8' where name='NLS_NCHAR_CHARACTERSET';
SQL> update sys.props$ set value$='KOREAN_KOREA.UTF8' where name='NLS_LANGUAGE';
SQL> update sys.props$ set value$='KO16MSWIN949' where name='NLS_CHARACTERSET';
SQL> update sys.props$ set value$='KO16MSWIN949' where name='NLS_NCHAR_CHARACTERSET‘;
SQL> update sys.props$ set value$='KOREAN_KOREA.KO16MSWIN949' where name='NLS_LANGUAGE';
SQL> commit;
SQL> shutdown immediate; 
SQL> startup mount; 
SQL> alter system enable restricted session; 
SQL> alter system set job_queue_processes=0; 
SQL> alter system set aq_tm_processes=0; 
SQL> alter database open; 
SQL> alter database character set KO16MSWIN949; 
SQL> shutdown immediate; 
SQL> startup;

인코딩을 한글한글 확장형으로 변경하는 과정입니다.



이후 다시 테스트를 진행합니다.



정상적으로 한글이 출력 되었습니다.


이미지 업로드


NAVER Smart Editor2로 폼을 만들었는데 위와 같이 이미지 업로드가 되지 않았습니다.




server.xml에서 설정이 필요합니다. vi 편집기로 /etc/share/tomcat/conf/server.xml파일을 열어 아래내용을 추가합니다.
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
 prefix="localhost_access_log." suffix=".txt"
 pattern="%h %l %u %t &quot;%r&quot; %s %b" />
 <Context docBase="/upload" path="/SE2/multiupload" reloadable="true"/>

docBase는 리눅스 상의 실제 파일이 업로드될 디렉토리이며 path는 톰캣에서의 경로입니다. 
실제 이미지가 업로드될 디렉토리를 만들어 줍니다.
    


 mkdir로 업로드될 디렉토리를 만들고 tomcat이 접근할 수 있도록 소유권한 그룹권한을 tomcat으로 바꾸어 줍니다.




tomcat서비스를 재구동하고 다시 테스트 하면 정상적으로 작동하는 것을 확인 할 수 있습니다.

검색 테스트


제목+내용으로 검색이라는 글자가 포함된 제목이나 내용을 출력하도록 폼에 입력해보았습니다.



하지만 정상적으로 동작하지 않았습니다.



DB에 문제가 있다싶어 접속해서 DB내용을 출력해보았습니다.
한글의 경우 물음표가 뜹니다.
물음표로 뜨는 것부터 해결했습니다.

vi /etc/locale.conf 명령을 이용해 편집기로 파일을 엽니다.


위와 같이 언어 설정을 바꾸어 주고 reboot명령어로 재부팅 합니다.

만약 기존 euc-kr로 저장된 파일을 utf-8로 변경하고 싶으면
convmv --notest -f euc-kr -t utf-8 바꿀 파일경로 또는 폴더경로
를 입력해주면 됩니다. 
만약 tomcat server.xml에 인코딩이 지정되어있지 않으면 마찬가지로 DB로 보낸 파라미터 값을 제대로 읽어 들일 수가 없습니다.


server.xml 설정 추가


vi /etc/share/tomcat/conf/server.xml 명령으로 파일을 열고 첫번째 connector port 부분을 찾아서
URIEncoding="UTF-8" 내용을 추가 합니다.



마찬가지로 두번째 connector port부분을 찾아서 URIEncoding="UTF-8"을 추가 합니다.
wq로 저장하고 systemctl restart tomcat 명령을 이용하여 tomcat 서비스를 재시작합니다.



이후 다시 테스트를 진행합니다.



검색기능이 정상적으로 작동하는 것을 확인 할 수 있습니다.


+ Recent posts