티스토리 뷰



얼마전 프로젝트에서는 영문 윈도우 개발환경을 사용해야 했는데, 영문 환경에서 이전 프로젝트의 공통 모듈을 사용하려다 보니 한글로 기입했던 주석들이 모두 깨져 보이는 문제가 발생했습니다(물론 영문 윈도우 환경에서 비주얼스튜디오를 사용했습니다). 그래서 jEdit 텍스트 편집기로 해당 소스를 불러보았더니 정상적으로 표시되었습니다. jEdit에서는 EUC-KR을 기본 인코딩을 설정해 놓았기 때문이었는데 이것을 UTF-16 인코딩으로 바꾸어서 저장한 다음 비쥬얼스튜디오에서 다시 열어보니 정상적으로 보여졌습니다.



jEdit에서의 인코딩 변환은 화면 우측 하단에 있는 인코딩 표시를 더블클릭하여 위의 화면과 같이 조정하신후 저장하시면 됩니다.


문제는 헤더, C/C++소스, 텍스트등 한글이 포함된 것을 일일이 하나씩 불러서 인코딩을 바꾸어 다시 저장하기에는 시간과 노력이 너무 아깝다는 것이었습니다. 그래서 검색해 보니 다음 블로거 masoris20 라는 분이 자작 프로그램을 올려주셨더군요.



너무 고맙죠...라이선스도 오픈하시고.... 그분 블로그에 있는 것처럼 .Net 기반으로 작성한 것이기 때문에 .net 프레임워크가 설치되어 있어야 하지만 닷넷 2.0 기준이므로 대부분 시스템에서 자연스럽게 수행될 것입니다.


소스도 같이 배포하셨는데 저는 일단 실행프로그램(Btec.exe)을 실행시키는 것만으로도 충분한 작업이 되었습니다.

배포도 허락하셨으므로 Btec_all.zip으로 관련 실행 프로그램과 소스를 첨부합니다.


Btec_all.zip


한글 윈도우 환경에서 개발한 소스 코드를 영문 윈도우 환경에서 읽기 위하여 특정한 폴더를 기준으로 그 아래에 있는 모든 *.c, *.cpp, *.h, *.txt 확장자를 일괄 변환 시키는 절차를 그림과 함께 설명합니다. 이러한 작업은 영화 자막의 한글 인코딩을 일괄 변환하는 과정에도 응용할 수 있습니다.




1. Btec.exe를 실행시키면 상단의 화면이 나옵니다.

2. ① 항목에서 ks_c_5601-1987(Korean)을 선택합니다. <- EUC-KR

3. ② 항목에서 Unicode(UTF-16)을 선택합니다

4. ③ 항목에서 세미콜론(;)을 구분하여 대상 파일들의 확장자를 입력합니다. 예제에서는 *.c;*.cpp;*.h;*.txt를 대상으로 했습니다.

5. 하위폴더포함을 확인하고 ④ 항목에서 대상 폴더를 찾아 선택하면 위에 파일들이 쭉 검색되어 리스팅 됩니다.

6. 리스팅된 파일중 하나를 샘플로 클릭하여 ⑤항목에서 원본 파일의 인코딩이 ks_c_5601-1987이고 한글이 잘 표시되는지 확인합니다.

7. 확인후 ⑥를 클릭하면 대상 파일들을 일괄 변환합니다.

8. 끝으로 비쥬얼스튜디오에서 해당 프로젝트를 열어 한글 주석이 정상적으로 보여지는지 확인합니다.



이런 이슈는 중국어나 일본어 환경에서 한글이 포함된 코드를 읽을 때도 동일하게 발생할 것으로 보입니다. 소스코드나 영화 자막의 한글 인코딩 변환 뿐만아니라 다양한 영역에서 활용할 수 있는 코드입니다. 코드를 공개하신 개발자께 다시 한번 감사의 말씀을 드립니다.




댓글
댓글쓰기 폼