정보를 잃지 않고 C++ std::string
을 UTF-8 또는 std::wstring
으로 변환하려고합니다 (비 ASCII 문자가 포함 된 문자열을 고려하십시오). http://forums.sun.com/thread.jspa?threadID=486770&forumID=31에 따르면std :: string.c_str()은 어떤 인코딩을 사용합니까?
:
성병 : : 문자열이 ASCII 문자가 아닌 문자가있는 경우, 당신은 UTF-8 인코딩으로 변환하는 기능을 제공해야합니다 [...]
std::string.c_str()
은 어떤 인코딩을 사용합니까? 크로스 플랫폼 방식으로 UTF-8 또는 std::wstring
으로 변환하려면 어떻게해야합니까?
본질적으로 인코딩을 미리 알지 못해 std :: string을 변환 할 수있는 방법이 없습니다. 나는 std :: string을 취하는 API 함수를 작성하고 있기 때문에 물어 본다. 나는 문서가 어떤 포맷을 전달할 지 사용자에게 알려줄 필요가 있다고 생각한다. – Gili
@ Gili, 맞다. 알 수없는 인코딩의 바이트 시퀀스를 UTF-8 (또는 다른 어떤 것도 ;-)로 변환 할 수 없다. 호출자에게 UTF-8 데이터를 제공하도록 요청하는 것이 좋습니다. 대부분의 다른 인코딩은 가능한 모든 유니 코드 문자열을 인코딩 할 수 없습니다. @Naaff가 말했듯이 ASCII는 UTF-8 (및 ISO-8859- * 및 기타 여러 인코딩)의 특수한 경우이므로 걱정할 필요가 없습니다 (이 사실을 사용자에게 상기시켜주는 문서의 각주는 _them_ 걱정;-). –
좋은 대답, 고맙습니다. – Gili