zoukankan      html  css  js  c++  java
  • Http post请求数据带中文参数问题

      Http请求参数带中文参数时,如{"userName":"用户名123","password":"123456"}

      请求返回:01-用户名密码错误

      明明用户名以及密码都正确,为啥会不对呢?原来有可能是服务器编码问题,服务器一般是用UTF-8编码,需要对post的json字符串进行utf-8转码后才能被服务器端识别正确。

      提供转码函数:

     ToUtf8转码参考 
    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)
            
    return NULL;

        nLen = ::MultiByteToWideChar(CP_ACP, 
    0, lpszStr, -1NULL0);
        
    if (0 == nLen)
            
    return NULL;

        lpUnicode = 
    new wchar_t[nLen + 1];
        
    if (NULL == lpUnicode)
            
    return NULL;

        memset(lpUnicode, 
    0sizeof(wchar_t)* (nLen + 1));
        nLen = ::MultiByteToWideChar(CP_ACP, 
    0, lpszStr, -1, lpUnicode, nLen);
        
    if (0 == nLen)
        {
            
    delete[]lpUnicode;
            
    return NULL;
        }

        
    return lpUnicode;
    }

    bool UnicodeToUtf8const wchar_t *lpszUnicode, char *lpszUtf8, int nLen )
    {
        
    int nRet = ::WideCharToMultiByte(CP_UTF8, 0, lpszUnicode, -1, lpszUtf8, nLen, NULLNULL);
        
    return (0 == nRet) ? FALSE : TRUE;
    }

    bool AnsiToUtf8const char *lpszAnsi, char *lpszUtf8, int nLen )
    {
        
    wchar_t *lpszUnicode = AnsiToUnicode(lpszAnsi);
        
    if (NULL == lpszUnicode)
            
    return FALSE;

        
    int nRet = UnicodeToUtf8(lpszUnicode, lpszUtf8, nLen);

        
    delete[]lpszUnicode;

        
    return (0 == nRet) ? FALSE : TRUE;
    }

  • 相关阅读:
    文件下载和进度显示
    响应
    log4j2-2.13.0版本安装
    maven私服nexus仓库3.24.0版本搭建
    window下MYSQL定时备份表库的BAT
    JBoss7.3.0EAP版本安装
    jetbrains-IDEA2020版本插件搜索以及官方汉化和其他插件安装介绍
    Jenkins迁移job插件Job Import Plugin
    Appium下出现Original error: pkg.... 解决办法
    IIS10下部署.NetCore站点出现出现 HTTP 错误 500.19,错误代码:0x8007000d及一些问题
  • 原文地址:https://www.cnblogs.com/MakeView660/p/9179085.html
Copyright © 2011-2022 走看看