2016-11-09 15:52:47 sinat_15597209 阅读数 1661

AFHTTPRequestOperationManager *manager=[[AFHTTPRequestOperationManager alloc]init];

    manager.requestSerializer = [AFJSONRequestSerializer serializer];

    manager.responseSerializer = [AFHTTPResponseSerializer serializer];

    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",@"text/json", @"text/plain", @"text/html", nil];

    [manager.requestSerializer setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"];


    [manager POST:url parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {

        NSError *errorData;

        NSString* strdata = [[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding];//在将NSString类型转为NSData

        NSData * data =[strdata dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];

        NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&errorData];

        block(dict);

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

        NSLog(@"error=%@",error);

    }];

2018-01-20 11:16:00 wlp5188199 阅读数 2714

1.解决post请求的中文乱码问题

(1)在项目中web.xml配置文件中加入:

<filter>

<filter-name>CharacterEncodingFilter</filter-name>

<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>utf-8</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>CharacterEncodingFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

以上可以解决post请求乱码问题。

(2) 对于get请求中文参数出现乱码解决方法有两个:

(1):修改tomcat配置文件添加编码与工程编码一致,如下:

<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080"protocol="HTTP/1.1" redirectPort="8443"/>


 (2)另一种方法就是对参数进行重新编码:因为我们都知道,tomcat一般情况下代码都是ISO8859-1编码

所以我们要对参数重新进行编码

String userName = new String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8");

ISO8859-1是tomcat默认编码,需要将tomcat编码后的内容按utf-8编码


2018-12-24 00:18:38 sinat_33212645 阅读数 55

目录

1.POST请求中文乱码

2.GET请求中文乱码


1.POST请求中文乱码

 1.1 解决之道:在web.xml中添加以下代码

<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>utf-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

2.GET请求中文乱码

 2.1 解决之道:修改tomcat配置文件(cnf/server.xml)server.xml



< ConnectorURIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

 

2019-08-09 13:29:34 weixin_42625143 阅读数 155

使用requests请求网页时,返回的页面信息有时是乱码,如下代码

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
}
def get_all(url,key):
    params = {
        'keyword':key,
        'enc':'utf-8'
    }
    response = requests.get(url=url,params=params,headers=headers)

    with open('jd.html','w',encoding='utf-8') as f:
        f.write(response.text)



if __name__ == '__main__':
    key = input('输入搜索内容:')
    url = 'https://search.jd.com/Search?'
    get_all(url,key)

返回的部分内容;

--------------------------------------------------------------------
注:如果你对python感兴趣,我这有个学习Python基地,里面有很多学习资料,感兴趣的+Q群:895817687
--------------------------------------------------------------------
<div class="p-name p-name-type-2">
            <a target="_blank" title="æžåœ°ä¼ è¯´çŸ­è¢–T恤男夏季韩版潮流短袖男士半袖tæ¤åœ†é¢†ä¼‘é—²ä¿®èº«å¤§ç äº”åˆ†è¢–æ½®ç‰Œé’å¹´å­¦ç”Ÿt恤衣服男è£
 430黄色 M" href="//item.jd.com/51029271063.html" οnclick="searchlog(1,51029271063,8,1,'','flagsClk=1077936264')">
                <em>æžåœ°ä¼ è¯´çŸ­è¢–T恤<font class="skcolor_ljg">ç”·</font>夏季韩版潮流短袖男士半袖tæ¤åœ†é¢†ä¼‘é—²ä¿®èº«å¤§ç äº”åˆ†è¢–æ½®ç‰Œé’å¹´å­¦ç”Ÿt恤衣服<font class="skcolor_ljg">ç”·è£
</font> 430黄色 M</em>
                <i class="promo-words" id="J_AD_51029271063"></i>
            </a>
        </div>

解决方法和思路过程;

代码;

def get_all(url,key):
    params = {
        'keyword':key,
        'enc':'utf-8'
    }
    response = requests.get(url=url,params=params,headers=headers)
    # 打印出所请求页面返回的编码方式
    print(response.encoding)
    # response.apparent_encoding是通过内容分析出的编码方式,这里是urf-8
    print(response.apparent_encoding)
    # 转码
    content = response.text.encode(response.encoding).decode(response.apparent_encoding)
    print(content)
    with open('jd.html','w',encoding='utf-8') as f:
        f.write(content)



if __name__ == '__main__':
    key = input('输入搜索内容:')
    url = 'https://search.jd.com/Search?'
    get_all(url,key)

控制台输出(部分);

E:\anaconda\python.exe E:/练习/最后阶段/0808/jd.py
输入搜索内容:男装
ISO-8859-1
utf-8
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="renderer" content="webkit">
<meta http-equiv="Cache-Control" content="max-age=300" />
<link rel="dns-prefetch" href="//search.jd.com" /><link rel="dns-prefetch" href="//item.jd.com" /><link rel="dns-prefetch" href="//list.jd.com" /><link rel="dns-prefetch" href="//p.3.cn" /><link rel="dns-prefetch" href="//misc.360buyimg.com" /><link rel="dns-prefetch" href="//nfa.jd.com" /><link rel="dns-prefetch" href="//d.jd.com" /><link rel="dns-prefetch" href="//img12.360buyimg.com" /><link rel="dns-prefetch" href="//img13.360buyimg.com" /><link rel="dns-prefetch" href="//static.360buyimg.com" /><link rel="dns-prefetch" href="//csc.jd.com" /><link rel="dns-prefetch" href="//mercury.jd.com" /><link rel="dns-prefetch" href="//x.jd.com" /><link rel="dns-prefetch" href="//wl.jd.com" /><title>男装 - 商品搜索 - 京东</title><meta name="Keywords" content="男装,京东男装" /><meta name="description" content="在京东找到了260867件男装的类似商品,其中包含了“男装”等类型的男装的商品。" /><script>
window.loadFa_toJson_data={query:'%E7%94%B7%E8%A3%85'};
window.jdpts={};jdpts._st=new Date().getTime();window.pageConfig={
    closeJpg : 1,
    compatible: false,
    searchType: 0,
    jdfVersion: '2.0.0',
    floatnav: 1,
    price_pdos_off: 0,
    actName: '',
    pSource: 'search_pc',
    queryParam: {
        c1: 0,
        c2: 1342,
        c3: 0,
        brand: '',
        price: '',
        keyword: '男装',
        page: '1'
    }
};
window.searchUnit={
    resizeOnebox: function(g,f,j){var g=parseInt(g),i=typeof f,h=typeof j;if(!isNaN(g)){if("string"==i&&f!=""&&g>0){$("#J_oneBoxFrame_"+f).css("height",g+10);h=="function"&&j()}else{if(i=="undefined"||i=="function"){$("#virtualWareIFrame").css("height",g>0?g+10:0);i=="function"&&f()}}}},
    resizeShopbox: function(e,d){var f=0;switch(e){case 1:case 2:f=145;break;case 3:f=75;break;case 4:f=80;break;default:break}f&&$("#shopboxIFrame").css("height",f).show();typeof(d)=="string"&&(new Image().src=d)},
    coupon: {}};
window.QUERY_KEYWORD='男装';
window.REAL_KEYWORD='男装';
</script>
<link type="text/css" rel="stylesheet" href="//misc.360buyimg.com/??jdf/1.0.0/unit/ui-base/5.0.0/ui-base.css,jdf/1.0.0/unit/shortcut/5.0.0/shortcut.css,jdf/1.0.0/unit/global-header/5.0.0/global-header.css,jdf/1.0.0/unit/myjd/5.0.0/myjd.css,jdf/1.0.0/unit/nav/5.0.0/nav.css,jdf/1.0.0/unit/shoppingcart/5.0.0/shoppingcart.css,jdf/1.0.0/unit/global-footer/5.0.0/global-footer.css,jdf/1.0.0/unit/service/5.0.0/service.css,jdf/1.0.0/unit/global-header-photo/5.0.0/global-header-photo.css,jdf/1.0.0/ui/area/1.0.0/area.css" />
<link type="text/css" rel="stylesheet" href="//misc.360buyimg.com/product/search/1.0.7/css/search.css" />
<script type="text/javascript" src="//misc.360buyimg.com/??jdf/1.0.0/unit/base/5.0.0/base.js,jdf/lib/jquery-1.6.4.js,product/module/es5-shim.js"></script>
<script>
window.SEARCH = {
    cid: 1349,
    ui_ver: '1.0.7',
    c_category: 1342,
    p_category: 0,
    enable_adv: 1,
    enable_prom_adwords: 1,
    enable_prom_flag: 1,
    enable_price: 1,
    enable_stock: 2,
    enable_yyk: 0,
    lottery_code: '',
    is_correct_hash: function(e){var a=["keyword","brand_id","activity_id","coupon_batch","ecard_id"];for(var c=0,b=a.length;c<b;c++){var d=new RegExp("(^|\\?|&)"+a[c]+"=([^&]*)(\\s|&|$)");if(d.test(e)){return true}}return false},
    get_real_hash: function(){var a=window.location.hash.substr(1);if(a&&$.browser.mozilla){return location.href.substr(location.href.indexOf("#")+1)}else{return a}}
};
(function(a,b){var c=b.get_real_hash();if(b.is_correct_hash(c)){a.location.href=a.location.pathname+"?"+c;return false}else{if(a.self!=a.top||$.browser.msie&&$.browser.version<=9){var f=null,e=function(){var d=$(a).width();return 1210>d?$("html").removeClass():$("html").removeClass().addClass(d>=1210&&1390>d?"resp01":"resp02"),true};e();$(a).resize(function(){clearTimeout(f),f=setTimeout(e,20)})}}})(window,SEARCH);
</script>
</head>
<body>
<!--shortcut start-->
<div id="shortcut-2014">
    <div class="w">
        <ul class="fl">
            <li id="ttbar-home"><i class="iconfont">&#xe608;</i><a href="//www.jd.com/" target="_blank">京东首页</a></li>
            <li class="dorpdown" id="ttbar-mycity"></li>
        </ul>
2016-10-21 13:45:44 cc_yy_zh 阅读数 1044

直接上图jmeter请求乱码中文乱码直接上图

请求中文乱码

阅读数 78

没有更多推荐了,返回首页