已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
21小时前关门了。
Improve this question
我不知道是utf8问题还是16问题,或者是语言环境问题,所以就这样了
所以我从一个捷克人写的文件中抓取了一些文本,伊日科维采
std::eventName = content.substr(first, found - first);
然后我尝试使用chatGPT函数处理它,因为我想用捷克字符命名目录和文件
std::string CStartStopBasic::ConvertStringToUtf8(const std::string& input)
{
// Convert std::string to const char*
const char* inputStr = input.c_str();
// Get required buffer size for MultiByteToWideChar()
int wideCharSize = MultiByteToWideChar(CP_UTF8, 0, inputStr, -1, nullptr, 0);
// Allocate wide-character string buffer
wchar_t* wideCharBuffer = new wchar_t[wideCharSize];
// Convert input string to wide-character string
MultiByteToWideChar(CP_UTF8, 0, inputStr, -1, wideCharBuffer, wideCharSize);
// Get required buffer size for WideCharToMultiByte()
int utf8Size = WideCharToMultiByte(CP_UTF8, 0, wideCharBuffer, -1, nullptr, 0, nullptr, nullptr);
// Allocate UTF-8 string buffer
char* utf8Buffer = new char[utf8Size];
// Convert wide-character string to UTF-8 string
WideCharToMultiByte(CP_UTF8, 0, wideCharBuffer, -1, utf8Buffer, utf8Size, nullptr, nullptr);
// Create std::string from UTF-8 string buffer
std::string output(utf8Buffer);
// Clean up buffers
delete[] wideCharBuffer;
delete[] utf8Buffer;
return output;
}
我看到文本在wideCharBuffer
中看起来是正确的,但是字符串输出与输入的相同。
cmd << "C:\\Dance\\" << fixedEventName;
CreateDirectoryA(cmd.str().c_str(), NULL);
cmd << "fixedEventName.txt";
inputFileName = cmd.str();
std::ofstream ofs(inputFileName, std::ofstream::trunc);
...usual ofstream stuff...
1条答案
按热度按时间nmpmafwu1#
我做的;抓住我的绳子
然后我这样做创建我的文件夹和文件与原始文本名称
我不知道这是好是坏,但它确实有效,并不难,但我只是在学习,字符串到wstring对初学者来说真的很复杂,我甚至不知道这是一个字符串到wstring的问题。