非ASCII文件路径Windows

问题描述 投票:0回答:1

我在Windows上工作,并且文件路径带有非ASCII符号。对于使用wstring的非ASCII符号窗口。我正在执行转换,并将其传递给luaL_dofile,但由于找不到文件而失败。

这是我的代码示例:

std::wstring wstr_path = "non-ASCII path"

using convert_type = std::codecvt_utf8_utf16<wchar_t>;
std::wstring_convert<convert_type, wchar_t> converter;
std::string str_path = converter.to_bytes(wstr_path);
luaL_dofile(mRoot, str_path.c_str());
c++ windows luajit wstring
1个回答
0
投票

我对luaL_dofile一无所知,但它不太可能使用UTF-8。用于Unicode无关程序的Windows文件API使用ANSI代码页(与系统默认语言环境相对应)。英文/美国系统上的ANSI代码页为1252,但其他系统默认语言环境具有不同的代码页。中欧为1250,西里尔字母为1251,依此类推。

此外,您可以尝试生成文件的简称(请参阅GetShortPathName API)并提供该名称。

© www.soinside.com 2019 - 2024. All rights reserved.