제 컴퓨터(Ubuntu+tomcat6.0+cubrid 2008 R)에서 개발하던 것을 cafe24에 멀티 호스팅(jsp + cubrid 7.3)으로 이전하였습니다.
증상은 아래와 같습니다.
1. 큐브리드 매니저에서는 한글이 잘 보입니다. DB에는 제대로 한글이 들어간 것으로 보입니다.
2. 페이지에서 다른 한글들은 문제없이 잘 보입니다. 다만 db에서 가져온 값들 중 한글은 다 ??? 처리가 됩니다.
3. 페이지 인코딩을 utf-8, euc-kr 등으로 바꿔봤지만 db에서 가져온 한글을 다 깨집니다.
4. 인코딩은 euc-kr로 놔둔채 jsp 페이지 지시자 (contentType="text/html; charset=euc-kr") 부분에서
contentType="text/html 구문을 삭제하면 db에서 가져온 한글이 보입니다.
5. DB에서 가져온 한글을 보이게 하는 또 다른 방법은 강제로 문자셋을 변환해주는 겁니다.
아래와 같은 클래스를 사용하면 db에서 가져온 한글이 안 깨집니다.
//한글 깨짐 방지
public String ksc(String str) {
String result = null;
try {
byte[] kscBytes = str.getBytes("8859_1");
result = new String(kscBytes, "KSC5601");
} catch(Exception e){}
return result;
}
하지만 DB에서 가져오는 모든 값을 위 클래스를 거치게 할 수는 없지 않습니까??
제 컴퓨터에서는 잘 돌아가던 소스였습니다.
다른 운영체제에서(윈도우 7)했을 때 나름 환경에 맞게 설정 해주면 잘 되었구요.
카페 24 호스팅이 문제일까요?
증상은 아래와 같습니다.
1. 큐브리드 매니저에서는 한글이 잘 보입니다. DB에는 제대로 한글이 들어간 것으로 보입니다.
2. 페이지에서 다른 한글들은 문제없이 잘 보입니다. 다만 db에서 가져온 값들 중 한글은 다 ??? 처리가 됩니다.
3. 페이지 인코딩을 utf-8, euc-kr 등으로 바꿔봤지만 db에서 가져온 한글을 다 깨집니다.
4. 인코딩은 euc-kr로 놔둔채 jsp 페이지 지시자 (contentType="text/html; charset=euc-kr") 부분에서
contentType="text/html 구문을 삭제하면 db에서 가져온 한글이 보입니다.
5. DB에서 가져온 한글을 보이게 하는 또 다른 방법은 강제로 문자셋을 변환해주는 겁니다.
아래와 같은 클래스를 사용하면 db에서 가져온 한글이 안 깨집니다.
//한글 깨짐 방지
public String ksc(String str) {
String result = null;
try {
byte[] kscBytes = str.getBytes("8859_1");
result = new String(kscBytes, "KSC5601");
} catch(Exception e){}
return result;
}
하지만 DB에서 가져오는 모든 값을 위 클래스를 거치게 할 수는 없지 않습니까??
제 컴퓨터에서는 잘 돌아가던 소스였습니다.
다른 운영체제에서(윈도우 7)했을 때 나름 환경에 맞게 설정 해주면 잘 되었구요.
카페 24 호스팅이 문제일까요?
CUBRID는 기본적으로 문자코드셋을 변경하지 않습니다. 즉, euc-kr로 입력하면 euc-kr로 DB에 저장이 되었다가 select 되면 euc-kr 로 꺼내집니다.
아마 이전하시는 과정에서 변경된 서버에서 사용되는 문자셑이 달라서 발생하는 문제인 것 같습니다. 이전과정에서 문자셑을 변경하셔야 할 것 같습니다. iconv를 이용하시면 문자셑을 변경할 수 있습니다. 호스팅 서버에서 iconv 를 통해 object file을 변환해주시면 됩니다. 아마 이전을 unload/load 로 하신 것으로 추정되어 말씀드립니다.