자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
C++ Builder UTF-8로 작성된 XML파일 전송합니다.
2012.05.08 20:27
파일 첨부합니다.
UTF-8파일로 작성된 XML파일인데 일을 ANSI 파일로 변환하기 위한 목적입니다.
XE2버젼에서는 Tmemo->Text 가 UnicodString 인데 UnicodString 으로 변환되어도 한글만 깨지지않으면
처리할 수 있겠습니다.
WideString, AnsiString, UnicodString 세가지를 이래저래 조합을해도 한글이 깨져나옵니다.
VCL에 여러가지 관련 함수가 있어 사용해보아도 해결되지 않습니다.
감사합니다.
댓글 2
-
관리자
2012.05.09 23:39
-
sumily
2012.06.19 00:56
관리자님...정말 너무 난해하게 가르쳐 주시는군요
저도 이 문제때문에 고생한적이 있습니다.
우선 AnsiString으로 사용하는 볼랜드6과 달리
xe2에서는 UnicodeString을 기본으로 사용하기 때문에 코드상에선 아무런 문제가 없는데
잘 안돌아가는 경우가 많이 있더군요
아주 간단하게 해결 할 수 있습니다.
String sFileName = "C:\\UTF8FileName.xml";
Memo1->Lines->LoadFromFile(sFileName, TEncoding::UTF8);
불러올때 TEncoding::UTF8 부분만 추가로 해주시면 됩니다.
C++ Builder UTF-8로 작성된 XML파일 전송합니다.
2012.05.08 20:27
파일 첨부합니다.
UTF-8파일로 작성된 XML파일인데 일을 ANSI 파일로 변환하기 위한 목적입니다.
XE2버젼에서는 Tmemo->Text 가 UnicodString 인데 UnicodString 으로 변환되어도 한글만 깨지지않으면
처리할 수 있겠습니다.
WideString, AnsiString, UnicodString 세가지를 이래저래 조합을해도 한글이 깨져나옵니다.
VCL에 여러가지 관련 함수가 있어 사용해보아도 해결되지 않습니다.
감사합니다.
댓글 2
-
관리자
2012.05.09 23:39
-
sumily
2012.06.19 00:56
관리자님...정말 너무 난해하게 가르쳐 주시는군요
저도 이 문제때문에 고생한적이 있습니다.
우선 AnsiString으로 사용하는 볼랜드6과 달리
xe2에서는 UnicodeString을 기본으로 사용하기 때문에 코드상에선 아무런 문제가 없는데
잘 안돌아가는 경우가 많이 있더군요
아주 간단하게 해결 할 수 있습니다.
String sFileName = "C:\\UTF8FileName.xml";
Memo1->Lines->LoadFromFile(sFileName, TEncoding::UTF8);
불러올때 TEncoding::UTF8 부분만 추가로 해주시면 됩니다.
아래의 링크를 참조 하시면 도움이 될것 같습니다.
다양한 인코딩으로 변환 할 수 있는 셈플입니다.
c++빌더 셈플도 있군요
http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/System_UTF8ToUnicodeString@PAnsiChar.html