일본어 저장시 오류
- 작성자 :
- 김*우
- 작성일 :
- 2011-08-21 21:25:44
- 조회수 :
- 2,031
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요..
일본사이트를 개발하고 있습니다.
일본어를 작성하여 db에 저장을 하는데 paramter까지는 정상적으로 자료가
갑니다.
그런데 db에 저자을 하면 깨지는 현상이 발생됩니다.
db에 있는 자료를 조회할 때는 decode해서 보여주면 정상적으로 보입니다.
VO설정하는 부분에서 SET 하는 부분에 다음과 같이 합니다.
result = new String(itext.getBytes("8859_1"), "MS932");
이렇게 처리하고 있습니다.
이런 처리를 안하면 역시 자료가 깨져서 보입니다.
db : oracle 9i
charset : utf-8(jsp,java등)
shift-jis(일본 현재 encode)
이번 주 주중에 오픈을 해야 하는데 심각합니다.
빠른 응답 부탁드리겠습니다.
일본사이트를 개발하고 있습니다.
일본어를 작성하여 db에 저장을 하는데 paramter까지는 정상적으로 자료가
갑니다.
그런데 db에 저자을 하면 깨지는 현상이 발생됩니다.
db에 있는 자료를 조회할 때는 decode해서 보여주면 정상적으로 보입니다.
VO설정하는 부분에서 SET 하는 부분에 다음과 같이 합니다.
result = new String(itext.getBytes("8859_1"), "MS932");
이렇게 처리하고 있습니다.
이런 처리를 안하면 역시 자료가 깨져서 보입니다.
db : oracle 9i
charset : utf-8(jsp,java등)
shift-jis(일본 현재 encode)
이번 주 주중에 오픈을 해야 하는데 심각합니다.
빠른 응답 부탁드리겠습니다.
A
문의하신 내용에 대해 답변 드립니다.
우선 저장한 데이터가 별도의 디코딩없이 조회할때는 깨지고 "MS932"로 디코딩을 하면 정상적으로 화면에 보이는 것이 맞는지 확인 부탁드립니다. 이것이 맞다면 DB에 저장하기 위해 넘기는 utf-8 데이터를 오라클에서 자체적으로 shift-jis로 변환하여 저장하기 때문에 조회를 위해서는 디코딩이 필요한 거 같습니다. utf-8 데이터를 별도의 인코딩, 디코딩 작업 없이 DB에 그대로 저장하고 조회하려면 오라클 DB 자체도 shift-jis 가 아닌 utf-8 로 캐릭터 셋을 설정하셔야 할 듯 합니다. 물론 utf-8로 DB를 설정하시면 모든 데이터가 3Byte로 인식이 되므로 DB 컬럼을 모두 다시 설계 하셔야하는 문제가 있으므로 DB 캐릭터셋 변경 보다는 조회때 데이터가 깨지지 않도록 디코딩 작업을 하시는 것이 나을 듯 합니다. 보다 자세한 내용(자바와 오라클 간 캐릭터셋 관련 문제)은 오라클에 문의하셔서 지원을 받아 보시는 것이 나을 듯 합니다.
우선 저장한 데이터가 별도의 디코딩없이 조회할때는 깨지고 "MS932"로 디코딩을 하면 정상적으로 화면에 보이는 것이 맞는지 확인 부탁드립니다. 이것이 맞다면 DB에 저장하기 위해 넘기는 utf-8 데이터를 오라클에서 자체적으로 shift-jis로 변환하여 저장하기 때문에 조회를 위해서는 디코딩이 필요한 거 같습니다. utf-8 데이터를 별도의 인코딩, 디코딩 작업 없이 DB에 그대로 저장하고 조회하려면 오라클 DB 자체도 shift-jis 가 아닌 utf-8 로 캐릭터 셋을 설정하셔야 할 듯 합니다. 물론 utf-8로 DB를 설정하시면 모든 데이터가 3Byte로 인식이 되므로 DB 컬럼을 모두 다시 설계 하셔야하는 문제가 있으므로 DB 캐릭터셋 변경 보다는 조회때 데이터가 깨지지 않도록 디코딩 작업을 하시는 것이 나을 듯 합니다. 보다 자세한 내용(자바와 오라클 간 캐릭터셋 관련 문제)은 오라클에 문의하셔서 지원을 받아 보시는 것이 나을 듯 합니다.