자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
C++ Builder C++ Builder 2007에서 유니코드 파일 불러오는 법 문의드립니다.
2016.12.08 14:11
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
안녕하세요.
자사에서 C++ Builder 2007과 Berlin 10.1 개발 툴을 사용중입니다.
Builder 2007에서 개발한 프로그램이 베트남어 지원이 필요한 상황인데, Builder 2007에서 VCL의 기본 컴포넌트들이 AnsiString 기반이므로 프로그램에서 필요한 해당 언어 리스트를 txt파일로 인코딩은 Ansi로 저장해야합니다.
하지만 영문 OS나 한국어 OS에서는 Ansi로 저장하게되면 베트남어 내용이 깨지게 돼죠.
Berlin 10.1에서는 UniCode를 지원하므로 유니코드 인코딩 형식으로 저장된 텍스트 파일을 TStringList에 불러올 수 있는데, Builder2007에서는 UniCode를 지원하지 않으므로 정상 로드가 되지 않습니다.
ex)
TStringList *stlsMessage = new TStringList;
stlsMessage->LoadFromFile(m_stExecutePath);
현재 Builder 2007에서 프로그램을 프로그램이 개발 진행중이 아니라 완성된 프로그램에 언어만 추가하면 되는 상황이라 TntUnicodeComponent와 같이 Unicode를 지원하는 컴포넌트로 버튼, 리스트 박스 라벨 등을 다 바꾸기엔 시간이 많이 소비되는 상황입니다.
혹시나 TntUnicodeComponent와 깉이 Unicode를 지원하는 컴포넌트가 아닌 소스 내에서 유니코드로 저장된 txt파일을 불러와 버튼, 리스트 박스, 라벨 등에 베트남 언어를 넣을 순 없을까요?
답변 부탁드립니다!
C++ Builder C++ Builder 2007에서 유니코드 파일 불러오는 법 문의드립니다.
2016.12.08 14:11
본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------
안녕하세요.
자사에서 C++ Builder 2007과 Berlin 10.1 개발 툴을 사용중입니다.
Builder 2007에서 개발한 프로그램이 베트남어 지원이 필요한 상황인데, Builder 2007에서 VCL의 기본 컴포넌트들이 AnsiString 기반이므로 프로그램에서 필요한 해당 언어 리스트를 txt파일로 인코딩은 Ansi로 저장해야합니다.
하지만 영문 OS나 한국어 OS에서는 Ansi로 저장하게되면 베트남어 내용이 깨지게 돼죠.
Berlin 10.1에서는 UniCode를 지원하므로 유니코드 인코딩 형식으로 저장된 텍스트 파일을 TStringList에 불러올 수 있는데, Builder2007에서는 UniCode를 지원하지 않으므로 정상 로드가 되지 않습니다.
ex)
TStringList *stlsMessage = new TStringList;
stlsMessage->LoadFromFile(m_stExecutePath);
현재 Builder 2007에서 프로그램을 프로그램이 개발 진행중이 아니라 완성된 프로그램에 언어만 추가하면 되는 상황이라 TntUnicodeComponent와 같이 Unicode를 지원하는 컴포넌트로 버튼, 리스트 박스 라벨 등을 다 바꾸기엔 시간이 많이 소비되는 상황입니다.
혹시나 TntUnicodeComponent와 깉이 Unicode를 지원하는 컴포넌트가 아닌 소스 내에서 유니코드로 저장된 txt파일을 불러와 버튼, 리스트 박스, 라벨 등에 베트남 언어를 넣을 순 없을까요?
답변 부탁드립니다!
델파이 2007은 유니코드를 지원하지 않습니다.
가장 좋은 방법은 최신버전으로 마이그레이션하는 것입니다.^^
다음 링크를 참조하셔서 마이그레이션을 검토해 보시기 바랍니다.
http://www.devgear.co.kr/rad-in-action/migration-upgrade-center/
급하게 2007에서 지원하려면, 데이터타입을 WideString으로 지정해 유니코드를 지원하는 컴포넌트 셋(TNT 컴포넌트 등)을 이용하는 방법이 가장 적합합니다.
또는, 베트남 윈도우즈 OS에 델파이 설치 후 현지언어를 지원하는 방법도 있습니다.
다만, 다른 언어의 윈도우즈에서 잘못 컴파일하면 소스(리소스 파일)가 깨질 수 있습니다.