한글 문자열 처리

auditory의 이미지


파일다이얼로그를 열어서 파일이름을 가져와서 해당 파일을 여는 프로그램이 있는데,

파일 경로에 한글이 들어가면 프로그램이 죽습니다.

해당되는 부분은

std::ifstream ifs;

std::string str;

ifs.open(str.c_str());

부분에서 fail이 납니다. 한글이 포함되지 않은 경우는 문제없이 열리구요..

string 대신 wstring 을 써야하는 경우인가요?

가장 쉽게 문제를 해결할 수 있는 방법이 어떤게 있을까요?

auditory의 이미지

자답입니다.

vs2005에서 ifstream안에 한글이 들어가면 안된다고 하네요.

그래서 locale을 바꿔주라네요.

이게 버그인지 정상적인 동작인지는 잘 모르겠습니다.

http://www.npteam.net/archive/200712