gpt4 book ai didi

无法使用 CLion 打开文件名中包含 unicode 字符的文件

转载 作者:太空宇宙 更新时间:2023-11-04 00:03:44 25 4
gpt4 key购买 nike

我在打开名称中包含 Unicode 字符的文件时遇到问题。我在桌面上创建了一个只有几行文本的文件。

c:\users\james\desktop\你好世界.txt

编辑:我正在使用 CLion。 CLion 以 unicode 格式传递参数。

当我将该字符串放入 Windows 运行对话框时,它会找到该文件并将其打开。

不过,有趣的是,我在调用 CommandLineToArgvW 时在文件夹名称中得到了双 L'\\' L'\\':
L"c:\\\\users\\\\james\\\\desktop\\\\ Hello World .txt"

所以我写了一个小例程来将文件名复制到另一个 wchar_t * 并去掉斜杠。还是不行。

errno == 2f == NULL

size_t filename_max_len = wcslen(filename);

//strip double slashes
wchar_t proper_filename[MAX_PATH + 1];

wchar_t previous = L'\0';
size_t proper_filename_location = 0;

for(int x = 0; x < filename_max_len; ++x)
{
if(previous == L'\\' && filename[x] == L'\\')
continue;

previous = filename[x];
proper_filename[proper_filename_location++] = filename[x];
}

proper_filename[proper_filename_location] = L'\0';

//Read in binary mode to prevent the C system from screwing with line endings
FILE *f = _wfopen(proper_filename, L"rb");

int le = errno;

if (f == NULL)
{
perror(strerror(le));

if(le == ERROR_FILE_NOT_FOUND)
{
return DUST_ERR_FILE_NOT_FOUND;
}
else {
return DUST_ERR_COULD_NOT_OPEN_FILE;
}
}

最佳答案

我已经解决了这个问题。我的直觉是正确的。 CLion 似乎正在提供 unicode 作为程序的输入。使用 Windows 运行对话框并将其作为参数传递给我的程序,我能够毫无问题地打开和处理文件。

关于无法使用 CLion 打开文件名中包含 unicode 字符的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32404908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com