반응형

java에서 compile 할 경우, 한글을 제대로 인식 하지 못해서 다음과 같은 오류가 발생할 때가 있다.

$ javac HelloWorld.java                                                                                               
HelloWorld.java:4: error: unmappable character for encoding ASCII                                                     
        System.out.println("??????");                                                                                 
                            ^  

 

이럴 때는 다음과 같이 Charterset를 알려 주면 정상적으로 컴파일 된다.

export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8

 

또는 컴파일러 옵션을 이용 해도 된다.

javac HelloWorld.java -encoding UTF8

 

이 때 java 파일은 UTF8(without BOM) 형식 으로 저장되어 있어야 한다.

반응형
반응형

무료로 사용가능한 파일 비교 및 병합 툴 입니다.


속도도 빠르고 다른 유사 툴과 비교하여 비교결과가 매우 세련되게 보여 집니다.



Screenshot

반응형
반응형

외부 업체에서 VB6 로 개발된 프로그램이 실행시 다음과 같은 오류가 발생 하면서

정상적으로 실행이 되지 않았다.

 

개발 업체에 문의 해보니 수정(업데이트)된 프로그램을 서버에서 내려받는 모듈 쪽에서 문제가

생긴것이라고 했다. 그러나 왜 오류가 발생하는 지는 알지 못했고 그래서 해결도 하지 못했다.

 

마냥 기다리고 있을 수는 없어서 구글링을 통해서 해결방법을 찾았다.

 

mscomctl.ocx 라는 VB6용 공용 컨트롤이 레지스트리에 등록이 제대로 되어 있지 않아서 발생한 것으로서

해당 ocx 파일(32비트 윈도우는 C:\windows\System32\, 64비트 경우 C:\windows\syswow64\ 폴더 내)을

regsvr32 를 이용해서 등록 하면 된다.

 

이후 다시 프로그램을 실행 하니 정상적으로 동작했다.

 

역시 구글신이 최고다...

반응형
반응형

윈도우 환경에서 Oracle Client 설치를 해도 ADO를 이용한 접속이 제대로 안되는 경우가 있다.

TNS, 포트 등 기본적인 설정상의 문제가 아니라면 다음을 확인 해보자.

 

1) OraOLEDB.Oracle 경우

 

접속 문자열에서 Provider를 'OraOLEDB.Oracle' 로 지정한 경우 시스템에 'Oracle Provider for OLE DB' 공급자가 정상적으로 등록되어 있어야 한다. 

 

등록여부는 다음과 같이 확인 할 수 있다.

 

1. 확장자 'UDL'로 임의의 파일을 생성 한다.

2. 해당 파일의 속성 창에서 '공급자' 페이지를 확인 한다.  

만약 위와 같이 'Oracle Provider for OLE DB' 가 나타나지 않으면 Oracle 사이트에서 ODAC를 받아서 설치를 한다. 

(http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html) 

그런데 기존에 Oracle client 설치시 함께 설치를 했는데도 나오지 않는 경우에는 regsvr32 명령으로 OraOLEDB11.dll(11g 기준)을 레지스트리에 다시 등록을 해 본다.

만약 ODAC를 기존 Oracle client와 다른 별도의 경로에 설치 한 경우, network\admin\tnsnames.ora 파일에 TNS를 등록해야 한다.
그리고 32비트, 64비트용이 각각 존재 하므로 만약 64비트 윈도우즈 환경에서 32비트 프로그램이 Oracle 접속이 되지 않는다면
32비트 ODAC의 설치가 필요 하다.

참고로 공급자에 제대로 등록이 되어 있지 않은 상태에서 Oracle 접속을 시도할 경우 경우 다음과 같은 오류가 발생 한다. 

2) MSDAORA.1 경우

접속 문자열에서 Provider를 'MSDAORA.1'로 지정한 경우 시스템에 'Microsoft OLE DB Provider for Oracle' 공급자가 정상적으로 등록되어 있어야 한다. 위와 동일한 방법으로 확인 할 수 있다. 

그런데 MSDAORA는 32비트에서만 제공된다. 64비트에서는 더 이상 지원이 안되기 때문에 사용할 수가 없다.

처음에 이것을 몰라서 엄청 애를 먹었다. 꼭 Provider를 MSDAORA를 사용 해야 한다면 어플리케이션을 32비트로 컴파일 해서 사용하고 그렇지 않으면 OraOLEDB.Oracle 를 대신 사용해야 한다.

참고로 공급자에 제대로 등록이 되어 있지 않은 상태에서 Oracle 접속을 시도할 경우 경우 다음과 같은 오류가 발생 한다. 
어떤 경우에 아래와 같이 각각 다른 형태의 메시지가 나타나는 지는 알 수가 없었다.
 

 

이 글이 도움이 되셨으면 댓글을 남겨 주세요!

 
반응형

+ Recent posts