c ++文件路径中的丹麦字符

时间:2017-10-24 11:00:03

标签: c++

我试图打开一个文件,一切顺利,直到我有丹麦字符的路径。 构造的文件路径是:“Test-0-ØHM/ 003.jpg”

string path = fileSystemPrefix + imagePath;
const char *pstr = path.c_str();
FILE *im = fopen( pstr, "rb" );

它尝试打开的路径是: 测试-0-Ã~HM/ 003.JPG

平台/编译器:Visual Studio 2010 - Visual C ++ 10.0

操作系统:Windows

有人能指出我正确的方向如何打开这些文件路径?

1 个答案:

答案 0 :(得分:0)

如果您使用C ++,那么sudo gem install -n /usr/local/bin sass中需要std::ifstream。那么您可能需要对丹麦语字符进行UTF-8编码。而不是#include <fstream>您应该使用std::string

这是一个例子:

std::wstring

主要问题是环境促进环境。那不能打印出一些字符。将结果输出到文件文本或html中。

您的身边(在Visual Studio中测试):

std::string StrToUTF8(const std::wstring &wstr)
{
    if (wstr.empty()) return std::string();

    /* Maps a UTF-16 (wide character) string to a new character string */
    /* The new character string is not necessarily from a multibyte character set */

    int size_needed = WideCharToMultiByte(CP_UTF8, 0, &wstr[0], (int)wstr.size(), NULL, 0, NULL, NULL);
    std::string strTo(size_needed, 0);
    WideCharToMultiByte(CP_UTF8, 0, &wstr[0], (int)wstr.size(), &strTo[0], size_needed, NULL, NULL);
    return strTo;
}