String 이 BC++ 6.0에서는 AnsiString 입니다.
RAD Studio 2010에서는 UnicodeString 이지요.
제가 2010에서 작성해서 그럴겁니다.
그냥 fp = _wfopen(L"test.txt", L"wb"); 로 해서 해보세요.
김동석 님이 쓰신 글 :
: 만들어주신대로 적용해보앗습니다.
: 컴파일결과
:
:
: fp = _wfopen(strSrcFileName.w_str(), L"wb");
:
:
: 이곳에서 에러가 발생합니다.
: [BCC32 Error] : E2316 'w_str' is not a member of 'AnsiString'
:
:
: 송신영 님이 쓰신 글 :
: : 참고 :
http://six605.tistory.com/309
: :
: : 3. 유니코드 문자를 텍스트 파일로 저장할 때 주의해야 할점
: : - 파일에 유니코드를 관리할 때 바이너리 모드르 다루어야 한다.
: : - 유니코드 텍스트파일의 첫 헤더의 경우 일반 아스키 텍스트파일과 틀리다.
: : : 즉, 파일의 첫 부분에 16진수 0xFEFF 를 기록해야 해당 파일이 유니코드로 작성된 텍스트 파일임을
: : 시스템이 파악한다.
: : cf) 플랫폼 별로 Big-Endian 시스템에서는 0xFEFF 를 기록하고, Little-Endian 시스템 에서는 0xFFFE 를 기록한다.
: : 윈도우 메모장은 이 두가지 형식을 다 지원하므로 어떤 값을 기록해도 유니코드로 인식하며, 파일을 읽을 수 있다.
: :
: :
: : FILE *fp;
: : String strSrcFileName = "test1.txt";
: : fp = _wfopen(strSrcFileName.w_str(), L"wb");
: : WORD mark = 0xFEFF;
: : fwrite(&mark, sizeof(WORD), 1, fp);
: : fwprintf(fp, L"파일출력12345");
: : fclose(fp);
: :
: :
: : 김동석 님이 쓰신 글 :
: : : FILE *fp;
: : : AnsiString strSrcFileName;
: : : strSrcFileName.sprintf("test.txt");
: : : fp = fopen(strSrcFileName.c_str(), "W+t");
: : : fprintf(fp,"파일내용");
: : : fclose(fp);
: : :
: : :
: : : 기본적으로 Text파일은 밑에 4종류 형식으로 나뉘어지는데요.
: : : ANSI
: : : UTF-8
: : : Unicode
: : : Unicode (Big Endian)
: : :
: : : 위에 소스방식으로 현재 파일을 생성하는데 ANSI 방식으로 파일이 만들어지는거 같은데,
: : :
: : : 이건 Unicode 형식으로 만들려면 어찌 해야되나요?