mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-22 10:40:05 +08:00
Charset default to UTF-8 on Windows
This commit is contained in:
parent
44d6457108
commit
e4de454d5d
@ -1 +1 @@
|
|||||||
Subproject commit 43004bef30cb4b48a7f8238027cee1054733f5b1
|
Subproject commit 26d54bbc7b1860a450434dce49bbc8fcbcbae88b
|
@ -204,7 +204,7 @@ elseif(WIN32)
|
|||||||
if (MSVC)
|
if (MSVC)
|
||||||
set(COMPILE_OPTIONS_DEFAULT
|
set(COMPILE_OPTIONS_DEFAULT
|
||||||
# TODO: /wd4819 应该是不会生效
|
# TODO: /wd4819 应该是不会生效
|
||||||
"/wd4566;/wd4819"
|
"/wd4566;/wd4819;/utf-8"
|
||||||
# warning C4530: C++ exception handler used, but unwind semantics are not enabled.
|
# warning C4530: C++ exception handler used, but unwind semantics are not enabled.
|
||||||
"/EHsc")
|
"/EHsc")
|
||||||
# disable Windows logo
|
# disable Windows logo
|
||||||
|
@ -219,7 +219,7 @@ timeout_sec=15
|
|||||||
retry_count=3
|
retry_count=3
|
||||||
|
|
||||||
[http]
|
[http]
|
||||||
#http服务器字符编码,windows上默认gb2312
|
#http服务器字符编码集
|
||||||
charSet=utf-8
|
charSet=utf-8
|
||||||
#http链接超时时间
|
#http链接超时时间
|
||||||
keepAliveSecond=30
|
keepAliveSecond=30
|
||||||
|
@ -208,7 +208,7 @@ static ApiArgsType getAllArgs(const Parser &parser) {
|
|||||||
if (parser["Content-Type"].find("application/x-www-form-urlencoded") == 0) {
|
if (parser["Content-Type"].find("application/x-www-form-urlencoded") == 0) {
|
||||||
auto contentArgs = parser.parseArgs(parser.content());
|
auto contentArgs = parser.parseArgs(parser.content());
|
||||||
for (auto &pr : contentArgs) {
|
for (auto &pr : contentArgs) {
|
||||||
allArgs[pr.first] = HttpSession::urlDecodeComponent(pr.second);
|
allArgs[pr.first] = strCoding::UrlDecodeComponent(pr.second);
|
||||||
}
|
}
|
||||||
} else if (parser["Content-Type"].find("application/json") == 0) {
|
} else if (parser["Content-Type"].find("application/json") == 0) {
|
||||||
try {
|
try {
|
||||||
|
@ -181,12 +181,7 @@ static onceToken token([]() {
|
|||||||
mINI::Instance()[kKeepAliveSecond] = 15;
|
mINI::Instance()[kKeepAliveSecond] = 15;
|
||||||
mINI::Instance()[kDirMenu] = true;
|
mINI::Instance()[kDirMenu] = true;
|
||||||
mINI::Instance()[kVirtualPath] = "";
|
mINI::Instance()[kVirtualPath] = "";
|
||||||
|
|
||||||
#if defined(_WIN32)
|
|
||||||
mINI::Instance()[kCharSet] = "gb2312";
|
|
||||||
#else
|
|
||||||
mINI::Instance()[kCharSet] = "utf-8";
|
mINI::Instance()[kCharSet] = "utf-8";
|
||||||
#endif
|
|
||||||
|
|
||||||
mINI::Instance()[kRootPath] = "./www";
|
mINI::Instance()[kRootPath] = "./www";
|
||||||
mINI::Instance()[kNotFound] = StrPrinter << "<html>"
|
mINI::Instance()[kNotFound] = StrPrinter << "<html>"
|
||||||
|
@ -66,7 +66,8 @@ void HttpClient::sendRequest(const string &url) {
|
|||||||
_http_persistent = true;
|
_http_persistent = true;
|
||||||
if (_body && _body->remainSize()) {
|
if (_body && _body->remainSize()) {
|
||||||
_header.emplace("Content-Length", to_string(_body->remainSize()));
|
_header.emplace("Content-Length", to_string(_body->remainSize()));
|
||||||
_header.emplace("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
|
GET_CONFIG(string, charSet, Http::kCharSet);
|
||||||
|
_header.emplace("Content-Type", "application/x-www-form-urlencoded; charset=" + charSet);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool host_changed = (_last_host != host + ":" + to_string(port)) || (_is_https != is_https);
|
bool host_changed = (_last_host != host + ":" + to_string(port)) || (_is_https != is_https);
|
||||||
|
@ -683,34 +683,10 @@ void HttpSession::sendResponse(int code,
|
|||||||
AsyncSender::onSocketFlushed(data);
|
AsyncSender::onSocketFlushed(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
string HttpSession::urlDecodePath(const string &str) {
|
|
||||||
auto ret = strCoding::UrlDecodePath(str);
|
|
||||||
#ifdef _WIN32
|
|
||||||
GET_CONFIG(string, charSet, Http::kCharSet);
|
|
||||||
bool isGb2312 = !strcasecmp(charSet.data(), "gb2312");
|
|
||||||
if (isGb2312) {
|
|
||||||
ret = strCoding::UTF8ToGB2312(ret);
|
|
||||||
}
|
|
||||||
#endif // _WIN32
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
string HttpSession::urlDecodeComponent(const string &str) {
|
|
||||||
auto ret = strCoding::UrlDecodeComponent(str);
|
|
||||||
#ifdef _WIN32
|
|
||||||
GET_CONFIG(string, charSet, Http::kCharSet);
|
|
||||||
bool isGb2312 = !strcasecmp(charSet.data(), "gb2312");
|
|
||||||
if (isGb2312) {
|
|
||||||
ret = strCoding::UTF8ToGB2312(ret);
|
|
||||||
}
|
|
||||||
#endif // _WIN32
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
void HttpSession::urlDecode(Parser &parser) {
|
void HttpSession::urlDecode(Parser &parser) {
|
||||||
parser.setUrl(urlDecodePath(parser.url()));
|
parser.setUrl(strCoding::UrlDecodePath(parser.url()));
|
||||||
for (auto &pr : _parser.getUrlArgs()) {
|
for (auto &pr : _parser.getUrlArgs()) {
|
||||||
const_cast<string &>(pr.second) = urlDecodeComponent(pr.second);
|
const_cast<string &>(pr.second) = strCoding::UrlDecodeComponent(pr.second);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,8 +44,6 @@ public:
|
|||||||
void onRecv(const toolkit::Buffer::Ptr &) override;
|
void onRecv(const toolkit::Buffer::Ptr &) override;
|
||||||
void onError(const toolkit::SockException &err) override;
|
void onError(const toolkit::SockException &err) override;
|
||||||
void onManager() override;
|
void onManager() override;
|
||||||
static std::string urlDecodePath(const std::string &str);
|
|
||||||
static std::string urlDecodeComponent(const std::string &str);
|
|
||||||
void setTimeoutSec(size_t second);
|
void setTimeoutSec(size_t second);
|
||||||
void setMaxReqSize(size_t max_req_size);
|
void setMaxReqSize(size_t max_req_size);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user