修复UTF8中文路径问题

This commit is contained in:
xx
2024-06-14 16:02:08 +08:00
parent 9b37c18fcc
commit 68bc2e6bac
3 changed files with 22 additions and 8 deletions

View File

@@ -152,7 +152,11 @@ bool fastweb::app::initialization_script()
if (script_filepath[0] != '/')
script_filepath = "/" + script_filepath;
script_filepath = config->website.dir + script_filepath;
#ifdef _WIN32
if (ylib::file::exist(codec::to_gbk(script_filepath)) == false)
#else
if (ylib::file::exist(script_filepath) == false)
#endif
{
m_lastErrorDesc = "Initialization script not found, filepath: " + script_filepath;
return false;

View File

@@ -110,14 +110,17 @@ std::vector<std::string> fastweb::config::extractVariableNames(const std::string
void fastweb::config::cache()
{
scripts.module_dir = m_ini.read("scripts", "module_dir");
scripts.module_dir = PATH_EX(m_ini.read("scripts", "module_dir"));
scripts.lua_cache_size = ylib::stoi(m_ini.read("scripts", "lua_cache_size"));
scripts.auto_update_sec = ylib::stoi(m_ini.read("scripts", "auto_update_sec"));
website.dir = m_ini.read("website","dir");
website.dir = PATH_EX(m_ini.read("website","dir"));
#ifdef _WIN32
//website.dir_utf8 = codec::to_utf8(website.dir);
#endif
website.default_404 = m_ini.read("website", "default_404");
website.default_index = strutils::split(m_ini.read("website", "default_index"), ',');
website.session_dir = m_ini.read("website", "session_dir");
website.session_dir = PATH_EX(m_ini.read("website", "session_dir"));
website.session_timeout_sec = ylib::stoi(m_ini.read("website", "session_timeout_sec"));
website.Initialization_script = m_ini.read("website", "Initialization_script");
website.debug = m_ini.read("website", "debug") == "1";
@@ -125,7 +128,7 @@ void fastweb::config::cache()
website.direct_url_mapping = m_ini.read("website", "direct_url_mapping") == "1";
log.enable = m_ini.read("log", "enable") == "1";
log.dir = m_ini.read("log", "dir");
log.dir = PATH_EX(m_ini.read("log", "dir"));
log.name = m_ini.read("log", "name");
log.sqlite = m_ini.read("log", "sqlite") == "1";
//log.succ = m_ini.read("log", "succ") == "1";
@@ -143,9 +146,9 @@ void fastweb::config::cache()
struct config::domain dm;
dm.port = ylib::stoi(m_ini.read(website.domain[i], "port"));
dm.https = m_ini.read(website.domain[i],"https")=="1";
dm.ssl.pem_key = ylib::file::read(m_ini.read(website.domain[i], "ssl_key"));
dm.ssl.pem_cert = ylib::file::read(m_ini.read(website.domain[i], "ssl_pem"));
dm.ssl.pem_ca = ylib::file::read(m_ini.read(website.domain[i], "ssl_ca"));
dm.ssl.pem_key = ylib::file::read(PATH_EX(m_ini.read(website.domain[i], "ssl_key")));
dm.ssl.pem_cert = ylib::file::read(PATH_EX(m_ini.read(website.domain[i], "ssl_pem")));
dm.ssl.pem_ca = ylib::file::read(PATH_EX(m_ini.read(website.domain[i], "ssl_ca")));
dm.ssl.pem_password = m_ini.read(website.domain[i], "ssl_pwd");
dm.ssl.type = (network::http::ssl_verify_type)ylib::stoi(m_ini.read(website.domain[i], "ssl_ver_type"));
if (dm.port == 0)

View File

@@ -28,4 +28,11 @@
if (::ithread::m_state == 1) \
break; \
system::sleep_msec(100); \
}
}
//
#ifdef _WIN32
#define PATH_EX(PATH) codec::to_gbk(PATH)
#else
#define PATH_EX(PATH) PATH
#endif