我试图打开一个文件,一切顺利,直到我有丹麦字符的路径。 构造的文件路径是:“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
有人能指出我正确的方向如何打开这些文件路径?
答案 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;
}