Http请求参数带中文参数时,如{"userName":"用户名123","password":"123456"}
请求返回:01-用户名密码错误
明明用户名以及密码都正确,为啥会不对呢?原来有可能是服务器编码问题,服务器一般是用UTF-8编码,需要对post的json字符串进行utf-8转码后才能被服务器端识别正确。
提供转码函数:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
wchar_t* AnsiToUnicode(const char* lpszStr)
{ wchar_t* lpUnicode; int nLen; if (NULL == lpszStr) nLen = ::MultiByteToWideChar(CP_ACP, ); lpUnicode = ]; memset(lpUnicode, )); return lpUnicode; bool UnicodeToUtf8( const wchar_t *lpszUnicode, char *lpszUtf8, int nLen ) bool AnsiToUtf8( const char *lpszAnsi, char *lpszUtf8, int nLen ) int nRet = UnicodeToUtf8(lpszUnicode, lpszUtf8, nLen); delete[]lpszUnicode; == nRet) ? FALSE : TRUE; |