关于JSON格式中的<b>编码

为什么我看见google Ajax search API返回的数据里面编码为:\u003cb\u003e

如下:
"title": "\u003cb\u003e大家\u003c/b\u003eCCTV.com",

而不是&lt,&gt

用\uXXXX表示是浏览器直接支持的么??

-谢谢

[b]问题补充:[/b]
回复laitaogood :
文件中的 \uXXXX被读到浏览器内存中应该一个字节'<'还是6个字节表示呢"\uXXXX",如果是一个字节表示,和直接写"<" 应该是一样的,

我理解的问题关键就是 \uXXXX被解释为'<'的时机,是在读入内存的时候,还是渲染到屏幕的时候呢?

3个回答

在ASCII编码表中 "<"对应的十六进制码是3c,">"对应的十六进制码是3e啊
所以这里的\u003c就是代表"<",\u003e就是代表">"的哦

<和>是通用的字符实体,在浏览器下当然是可用的

好像用\uXXXX的时候浏览器会找到它对应的字符实体,也就是对ASCII有个转换的过程吧,我的理解是这样的,希望对你有所帮助

\u开始的这些字符是unicode字符,是一套标准啦,当然所有都支持,
国际化就是要用到这种字符

[quote]我理解的问题关键就是 \uXXXX被解释为'<'的时机,是在读入内存的时候,还是渲染到屏幕的时候呢? [/quote]
个人以为应该是在浏览器渲染的时候被解释的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
golang中服务器获得json字符串格式不对
我发送的是{"userName":"huloixia","userPass":"030719"} 而服务器得到的却是%7B%22userName%22%3A%22huloixia%22%2C%22userPass%22%3A%22030719%22%7D& 我不知道什么方法可以再编码回来
java解析 新浪微博Json数据,获取uid和text
json格式如下: {"reposts_count": 0, "mlevel": 0, **"user_id": 1620302927,** "retweeted_status": {"reposts_count": 1, "user_id": 2209251457, **"text": "\u4e24\u6735\u5c0f\u83ca\u82b1\u554a,\u5f00\u5728\u82b1\u4e1b\u4e2d\u554a"}** 数量有很多,是以txt文本存在D盘,现在的流程是这样:读取文本->解析Json,获得uid和text(将utf-8编码改为中文)->存入MySql数据库的retweetedWeibo表里,只有2个字段(uid,text)。 已经在网上找过很多java 解析json的代码,但有错,而且很乱,有的用的jar包,有的又不写清楚,搞的我要抓狂了简直。 要是大神们解决了我的问题,再加C币! 为什么大家都只看到了解析json,其他的呢?上面还写了其他的要求啊?而且,你们的解析Json代码我在网上都有看到过,有的还试过了。我其实想要的是完整版的代码。辛苦大家了。
php 返回JSON数据 如何提取数据
返回的JSON数据格式是这样的 ``` data=%7B%22site_id%22%3A+%221596050222807053%22%2C+%22ad_id%22%3A+%22%22%2C+%22data%22%3A+%5B%7B%22lable%22%3A+%22%5Cu8bfe%5Cu7a0b%5Cu9009%5Cu62e9%22%2C+%22id%22%3A+1596050222818312%2C+%22value%22%3A+%22%5Cu897f%5Cu70b9%5Cu70d8%5Cu7119%22%2C+%22label%22%3A+%22%5Cu8bfe%5Cu7a0b%5Cu9009%5Cu62e9%22%7D%2C+%7B%22lable%22%3A+%22%5Cu59d3%5Cu540d%22%2C+%22id%22%3A+1596050222818328%2C+%22value%22%3A+%22%5Cu6d4b%5Cu8bd5%22%2C+%22label%22%3A+%22%5Cu59d3%5Cu540d%22%7D%2C+%7B%22lable%22%3A+%22%5Cu7535%5Cu8bdd%22%2C+%22id%22%3A+1596050222818344%2C+%22value%22%3A+%2213488888888%22%2C+%22label%22%3A+%22%5Cu7535%5Cu8bdd%22%7D%5D%7D ``` 如何提取里面的姓名、电话等信息? 注:JSON是从另外一个平台提取的,前端是不能操作。 我用站长工具去 解码就可以出来, 但是直接用PHP urldecode 转换 ``` data={“site_id“: “1596050222807053“ “ad_id“: ““ “data“: [{“lable“: “u8bfeu7a0bu9009u62e9“ “id“: 1596050222818312 “........ ``` 符号是中文的、过滤了 \
iOS json格式数据在真机解析错误问题
现在有一串Json格式的数据,在模拟器上可以正常解析,但是放到真机上就无法解析了,求问这是什么原因?代码示例如下: NSString *str = @"\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\n\n\n{\"code\":0,\"message\":\"success\",\"data\":{\"id\":2,\"name\":\"js\",\"img\":\"http://download2.ptteng.com/skill/thumb/f943eafb-306c-4582-b97f-3d3aa5e7ace3.jpg\",\"brief\":\"计算机网络协议,面向对象和数据结构和java基本语法\",\"description\":\"这个世界上最流行的手机操作系统,Java大显神威。\",\"salary\":\"\\\"[]\\\"\",\"difficult\":3,\"threshold\":5,\"cycle\":\"5年\",\"company\":12980,\"basis\":\"0\",\"type\":\"front\",\"onlineGradeCount\":1,\"offlineGradeCount\":1,\"classCount\":17,\"onlineClassCount\":9,\"offlineClassCount\":8,\"onlineUserCount\":201,\"offlineUserCount\":1,\"coreUserCount\":0,\"modules\":\"[{\\\"name\\\":\\\"职业简介\\\",\\\"content\\\":\\\"统治世界\\\"},{\\\"name\\\":\\\"工作内容\\\",\\\"content\\\":\\\"传销\\\"},{\\\"name\\\":\\\"需要技能\\\",\\\"content\\\":\\\"口才\\\"},{\\\"name\\\":\\\"发展前景\\\",\\\"content\\\":\\\"6666\\\"},{\\\"name\\\":\\\"入门门槛\\\",\\\"content\\\":\\\"cs一级棒\\\"},{\\\"name\\\":\\\"谁更合适\\\",\\\"content\\\":\\\"男人女人\\\"},{\\\"name\\\":\\\"职业限制\\\",\\\"content\\\":\\\"不能撬动地球\\\"}]\"}}\n\n\n"; NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding]; NSLog(@"%@",[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]); 将一串字符串使用UTF-8编码之后使用Json反序列化出来之后的数据可以正常打印,数据如下: { code = 0; data = { basis = 0; brief = "\U8ba1\U7b97\U673a\U7f51\U7edc\U534f\U8bae\Uff0c\U9762\U5411\U5bf9\U8c61\U548c\U6570\U636e\U7ed3\U6784\U548cjava\U57fa\U672c\U8bed\U6cd5"; classCount = 17; company = 12980; coreUserCount = 0; cycle = "5\U5e74"; description = "\U8fd9\U4e2a\U4e16\U754c\U4e0a\U6700\U6d41\U884c\U7684\U624b\U673a\U64cd\U4f5c\U7cfb\U7edf\Uff0cJava\U5927\U663e\U795e\U5a01\U3002"; difficult = 3; id = 2; img = "http://download2.ptteng.com/skill/thumb/f943eafb-306c-4582-b97f-3d3aa5e7ace3.jpg"; modules = "[{\"name\":\"\U804c\U4e1a\U7b80\U4ecb\",\"content\":\"\U7edf\U6cbb\U4e16\U754c\"},{\"name\":\"\U5de5\U4f5c\U5185\U5bb9\",\"content\":\"\U4f20\U9500\"},{\"name\":\"\U9700\U8981\U6280\U80fd\",\"content\":\"\U53e3\U624d\"},{\"name\":\"\U53d1\U5c55\U524d\U666f\",\"content\":\"6666\"},{\"name\":\"\U5165\U95e8\U95e8\U69db\",\"content\":\"cs\U4e00\U7ea7\U68d2\"},{\"name\":\"\U8c01\U66f4\U5408\U9002\",\"content\":\"\U7537\U4eba\U5973\U4eba\"},{\"name\":\"\U804c\U4e1a\U9650\U5236\",\"content\":\"\U4e0d\U80fd\U64ac\U52a8\U5730\U7403\"}]"; name = js; offlineClassCount = 8; offlineGradeCount = 1; offlineUserCount = 1; onlineClassCount = 9; onlineGradeCount = 1; onlineUserCount = 201; salary = "\"[]\""; threshold = 5; type = front; }; message = success; } 但是放到真机上运行的时候则打印结果如下: { code = 0; data = { basis = 0; brief = "\U8ba1\U7b97\U673a\U7f51\U7edc\U534f\U8bae\Uff0c\U9762\U5411\U5bf9\U8c61\U548c\U6570\U636e\U7ed3\U6784\U548cjava\U57fa\U672c\U8bed\U6cd5"; classCount = 17; company = 12980; coreUserCount = 0; cycle = "5\U5e74"; description = "\U8fd9\U4e2a\U4e16\U754c\U4e0a\U6700\U6d41\U884c\U7684\U624b\U673a\U64cd\U4f5c\U7cfb\U7edf\Uff0cJava\U5927\U663e\U795e\U5a01\U3002"; difficult = 3; id = 2; img = "http://download2.ptteng.com/skill/thumb/f943eafb-306c-4582-b97f-3d3aa5e7ace3.jpg"; modules = "[{\"name\":\"\U804c\U4e1a\U7b80\U4ecb\",\"content\":\"\U7edf\U6cbb\U4e16\U754c\"},{\"name\":\"\U5de5\U4f5c\U5185\U5bb9\",\"content\":\"\U4f20\U9500\"},{\"name\":\"\U9700\U8981\U6280\U80fd\",\"content\":\"\U53e3\U624d\"},{\"name\":\"\U53d1\U5c55\U524d\U666f\",\"content\":\"6666\"},{\"name\":\"\U5165\U95e8\U95e8\U69db\",\"content\":\"cs\U4e00\U7ea7\U68d2\"},{\"name\":\"\U8c01\U66f4\U5408\U9002\",\" 少了一部分数据,求问大神这是为什么?
jquery 对 java后台换回的 json解析失败
ff上报错是:SyntaxError: JSON.parse: unexpected keyword at line 1 column 1 of the JSON data 前端代码 ``` ChatMassage cm = ChatMassage.instance(); String mas = cm.getMassage(num); int massageNumber = ChatMassage.mass_num; System.out.println("mnumber:"+massageNumber); session.setAttribute("massageNumber", massageNumber); JSONObject json = new JSONObject(); json.put("massage", mas); json.put("massageNumber", massageNumber); System.out.println(json); return json; ``` 前端问题 ``` function loadMassage(){ $.ajax({ data: "num=" + massageNumber, url: "loadData.do", Success: $(function(msg){ var res =$.parseJSON(msg); alert(parseInt(res.massageNumber)); massageNumber=parseInt(res.massageNumber); massages+=res.massgae; document.body.innerHTML=massages; }) }); ``` json生成部分 ``` } else { cm.addUser(name); HttpSession session = request.getSession(); session.setAttribute("username", name); SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); String data = dateFormat.format(new Date()); cm.setMassage("<br><font color=\'red\'> welcom "+name+" join in chatting" + " at "+data+"</font><br>"); } ``` ``` request header: Host: localhost:8080 User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:57.0) Gecko/20100101 Firefox/57.0 Accept: */* Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: http://localhost:8080/spring/chat X-Requested-With: XMLHttpRequest Cookie: JSESSIONID=26FBFB1DFC7729A3E1A423AECA8B2995 DNT: 1 Connection: keep-alive Response Header: Server: Apache-Coyote/1.1 Content-Type: : application/json Content-Length: 108 Date: Mon, 25 Dec 2017 16:33:01 GMT ``` 在返回时已设置编码 ``` Object result = action.execute(request, response); if(result instanceof String) { request.getRequestDispatcher(result.toString()).forward(request, response); } else if (result instanceof JSONObject) { response.setHeader("Content-Type:", "application/json"); response.setCharacterEncoding("utf-8"); response.getWriter().print((JSONObject)result); } ``` 因为是 Linux 系统,所以一般情况下不会出现编码问题。并且我也将中文全部替换为英文。 之前在没开 debug 时,解析全部为 undefinded
爬取评论得到的json包是纯英文看上去是某种编码,不知道如何解决
{"data":{"list":{"summary":{"main_product_id":"23823927","total_comment_num":"2474","long_comment_count":"0","total_score_count":"454","total_crazy_count":"2465","total_indifferent_count":"5","total_detest_count":"4","total_auto_count":"2020","total_image_count":"13","average_score":"5","average_score_eliminate_default":"4.87","favorable_rate":"1","pageCount":"45","goodRate":"99.6","pageIndex":"1","autoCount":"2020"},"html":" <div class=\"item_wrap\">\r\n <!-- \u8bc4\u8bba\u5217\u8868 -->\r\n <div class=\"comment_items clearfix\">\r\n <div class=\"items_right\">\r\n <div class=\"pinglun\">\r\n <span class=\"star_box\">\r\n <span class=\"star\" style=\"width:100%\"><\/span>\r\n <\/span>\r\n <em>10\u5206<\/em>\r\n <\/div>\r\n <div class=\"describe_detail\">\r\n \r\n <span><a href='http:\/\/comment.dangdang.com\/comment\/info\/0\/36973574790\/23823927\/23823927\/261197820' target='_blank'>\u559c\u6b22\u5377\u798f\u7684\u4e00\u5b9a\u8981\u5165\u624b\uff0c\u9875\u9875\u90fd\u662f\u9ad8\u6e05\uff0c\u6253\u5f00\u590f\u6d1b\u514b\u7684\u53e6\u4e00\u79cd\u65b9\u5f0f\uff0c\u8d76\u4e0a\u5341\u4e00\u5927\u4fc3\uff0c\u8d85\u503c\u5165\u624b<\/a><\/span>\r\n \r\n <\/div>\r\n <ul class='pic_show clearfix' dd_name='\u6652\u56fe\u70b9\u51fb'><li><a href='javascript:'><img src='http:\/\/img7x4.ddimg.cn\/Community71\/18\/24\/14390064-reviewimg-1_p.jpg' data-big-pic='http:\/\/img7x4.ddimg.cn\/Community71\/18\/24\/14390064-reviewimg-1_e.jpg'><\/a><b class=\"pic_show_arrow\"><\/b><li><a href='javascript:'><img src='http:\/\/img7x5.ddimg.cn\/Community71\/19\/25\/14390065-reviewimg-1_p.jpg' data-big-pic='http:\/\/img7x5.ddimg.cn\/Community71\/19\/25\/14390065-reviewimg-1_e.jpg'><\/a><b class=\"pic_show_arrow\"><\/b><li><a href='javascript:'><img src='http:\/\/img7x6.ddimg.cn\/Community71\/20\/26\/14390066-reviewimg-1_p.jpg' data-big-pic='http:\/\/img7x6.ddimg.cn\/Community71\/20\/26\/14390066-reviewimg-1_e.jpg'><\/a><b class=\"pic_show_arrow\"><\/b><\/ul> <div class=\"pic_show_big\" style=\"display:none\" dd_name=\"\u6652\u56fe\u70b9\u51fb\">\r\n <div class=\"big_pic_wrap\"><img\/><\/div>\r\n <span class=\"big_pic_left\"><i><\/i><\/span>\r\n <span class=\"big_pic_right\"><i><\/i><\/span>\r\n <\/div>\r\n\r\n <div class=\"starline clearfix\">\r\n <span>2018-10-05 11:02:36<\/span>\r\n <span><\/span>\r\n <span class=\"icon_yg\">\u5df2\u8d2d<\/span>\r\n <\/div>\r\n\r\n <div class=\"support\" data-comment-id=\"334695205\">\r\n <a href=\"javascript:\" class=\"zan \" dd_name=\"\u8d5e\" data-type=\"zan\" data-number=\"0\">\u8d5e<\/a>\r\n <a href=\"javascript:\" style=\"display: none;\" class=\"reply \" dd_name=\"\u56de\u590d\" data-type=\"huifu\" data-number=\"0\">\u56de\u590d<\/a>\r\n\r\n <\/div>\r\n\r\n <\/div>\r\n <div class=\"items_left_pic\">\r\n <a href=\"javascript:\" class=\"pic\"><img alt=\"\u7eff\u8272\u5c0f\u6d3b\u9a74...\" src=\"http:\/\/img7x2.ddimg.cn\/imghead\/58\/13\/5091056884642-1_o.png\"><\/a>\r\n <span class=\"name\" title=\"\u7eff\u8272\u5c0f\u6d3b\u9a74\u513f\">\u7eff\u8272\u5c0f\u6d3b\u9a74...<\/span>\r\n <span class=\"level level04\">\u94bb\u77f3\u4f1a\u5458<\/span>\r\n <\/div>\r\n\r\n <\/div>\r\n <div class=\"comment_items clearfix\">\r\n <div class=\"items_right\">\r\n <div class=\"pinglun\">\r\n
各位大佬,关于PHP转换json之后,js接收报错,求解!
我的测试代码,在自己电脑上运行是运行的 ``` <?php // header("content-type:text/html;charset=utf-8"); // header("Access-Control-Allow-Origin:*"); // header('Access-Control-Allow-Methods:POST'); // header('Access-Control-Allow-Headers:x-requested-with, content-type'); // header("Content-Security-Policy: upgrade-insecure-requests"); require_once(dirname(__FILE__) . './db-test/config.php'); header("Content-type: text/html; charset=utf-8"); error_reporting(0); //创建数据库连接 $mysqli = new Mysqli($dbhost, $dbuser, $dbpass, $dbname); if ($mysqli->connect_error) { die('connect error:' . $mysqli->connect_errno); } $method = !empty($_REQUEST['method']) ? trim($_REQUEST['method']) : ''; //获取时间 if ($method == "query") { $begin_time = $_GET['begin_time']; $begin = $begin_time; $finish_time = $_GET['finish_time']; $finish = $finish_time; //转换为时间戳 $begin_time = strtotime($begin_time); $finish_time = strtotime($finish_time); $selected = $_GET['selected']; //选择的 if ($selected=="jiaye"){ $sql = "SELECT * FROM wx_user where source <>'yunfeng' AND (subscribe_time>('$begin_time')) and subscribe_time<'$finish_time' ;"; }else{ $sql = "SELECT * FROM wx_user where source='yunfeng' AND (subscribe_time>('$begin_time')) and subscribe_time<'$finish_time';"; } $result = $mysqli->query($sql); $results = array(); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $results[] = $row; } $arr = json_encode($results,JSON_UNESCAPED_UNICODE); //echo($arr); } else { //默认筛选 //上个月的时间戳 $last_month = strtotime(date('Y-m-01 00:00:00',strtotime('-1 month'))); //获取今日开始时间戳和结束时间戳 $endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1; $result = $mysqli->query("select * from wx_user where source='yunfeng' AND (subscribe_time>('$last_month')) and subscribe_time<'$endToday' "); $results = array(); while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { $results[] = $row; } $arr = json_encode($results,JSON_UNESCAPED_UNICODE); } ?> <html> <head> <!-- 设置HTML5编码--> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"> <!-- 设置HTML5编码--> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <!-- <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"/> --> <title>用户关注数据</title> <!-- 最新版本的 Bootstrap 核心 CSS 文件 --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <link href="https://cdn.bootcss.com/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css" rel="stylesheet"> <link href="//cdn.bootcss.com/bootstrap-table/1.11.1/bootstrap-table.css" rel="stylesheet"> <script src="http://libs.baidu.com/jquery/2.1.1/jquery.min.js"></script> <script src="https://unpkg.com/tableexport.jquery.plugin/tableExport.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script> <script src="https://cdn.bootcss.com/moment.js/2.18.1/moment-with-locales.min.js"></script> <script src="https://cdn.bootcss.com/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script> <script src="//cdn.bootcss.com/bootstrap-table/1.11.1/bootstrap-table.js"></script> <script src="//cdn.bootcss.com/bootstrap-table/1.11.1/locale/bootstrap-table-zh-CN.js"></script> <style> .Connection { display: inline-block; position: relative; margin: 0 5px 0 0; } </style> </head> <body> <h2 class="text-center"> <?php $selected = $_GET['selected']; if ($selected=="jiaye"){ echo "嘉业关注用户"; }else{ echo "云蜂关注用户"; } ?> </h2> <div class="Connection"> <div class="cell-left"> </div> </div> <div class="Connection"> <div class="cell-left"> <div class="form-group"> <select class="form-control" id="selected"> <option value="yunfeng">云蜂</option> <option <?php $selected = $_GET['selected']; if($selected==='jiaye'){ echo 'selected';}?> value="jiaye" >嘉业</option> </select> </div> 请选择起始日期: <input type='text' class="form-control" id='datetime1' style="width:200px; placeholder=" value="<?php echo $begin; ?>"""/> </div>       </div> <div class="Connection"> <div class="cell-left"> 请选择结束日期: <input type='text' class="form-control" id='datetime2' style="width:200px; placeholder=" value="<?php echo $finish; ?>"""/> </div>    </div> <div class="Connection"> <div class="cell-left"> <button class="btn btn-default" onclick="GetTime()">提交</button>    </div>   </div> <div class="Connection"> <div class="cell-left">     <button class="addBtn btn btn-default" id="exportTable"> 导出当前表格数据 </button>     </div>     </div> <script> function trim(str){ return str.replace(/(^\s*)|(\s*$)/g, ""); } $(function () { $("#datetime1").datetimepicker({ format: 'YYYY-MM-DD ', locale: moment.locale('zh-cn') }); $("#datetime2").datetimepicker({ format: 'YYYY-MM-DD ', locale: moment.locale('zh-cn') }); }); var new_data = ""; function GetTime() { var selected= $("#selected").val(); var a = $(" #datetime1").val(); var b = $(" #datetime2").val(); var a= trim(a); var b= trim(b); // alert("第一个输入框" + a) //alert("第二个输入框" + b) location.href = "admin_weixin_subscribe_yunfeng.php?method=query&selected="+selected+"&begin_time=" + a + "&finish_time=" + b; } </script> <div class="table-responsive"> <table id="mytab" class="table table-striped table-bordered"> </table> </div> <script type="text/javascript"> var arr =<?php echo $arr;?>; $(function () { $('#mytab').bootstrapTable({ data: arr, dataType: 'json', queryParams: "queryParams", showColumns: true, //测试 新加 //showRefresh: true, //是否显示刷新按钮 toolbar: "#toolbar", //工具按钮用哪个容器 // editable:true; editable: true, clickEdit: true, showExport: true, sidePagination: "true", //分页方式:client客户端分页,server服务端分页(*) //striped: true, // 是否显示行间隔色 search: true, method: 'GET', //请求方式(*) //search : "true", //是否显示表格搜索 uniqueId: "ID", //每一行的唯一标识,一般为主键列 pageSize: "20", pageList: [10, 25, 50, 100, 'All'], //可供选择的每页的行数(*) pagination: true, // 是否分页 sortable: true, // 是否启用排序 clickToSelect: true, //是否启用点击选中行 columns: [ [{ "title": "<?php $selected = $_GET['selected']; if ($selected=="jiaye"){ echo "嘉业关注用户"; }else{ echo "云蜂关注用户"; } ?>", "halign": "center", "align": "center", //合体了5个列 "colspan": 13 } ], [{ field: 'openid', title: 'openid', sortable: true }, { field: 'nickname', title: '用户昵称', sortable: true, }, { field: 'userid', title: '序号', sortable: true, }, { field: 'subscribe_time', title: '时间戳', sortable: true, }, { title: '最后关注时间',//标题 可不加 edit: false, sortable: true, formatter: function (value, row, index) { return new Date(parseInt(row.subscribe_time) * 1000).toLocaleString().replace(/:\d{1,2}$/, ' '); } }, { field: 'sex', title: '性别', sortable: true, }, { field: 'language', title: '国别', sortable: true, }, { field: 'city', title: '所在国家', sortable: true, }, { field: 'province', title: '所在省份', sortable: true, }, { field: 'country', title: '所在城市', sortable: true, }, { field: 'mark', title: '备注', sortable: true, }, { field: 'subscribe_scene', title: '添加渠道', sortable: true, }, ] ] }); $("#exportTable").click(function () { //导出 $("#mytab").tableExport({ type: "excel", escape: "false", fileName: 'XX-XX关注信息' }); }); }); </script> </body> </html> ``` 运行结果:![图片说明](https://img-ask.csdn.net/upload/201907/08/1562576383_105519.jpg) 然后把代码放到公司服务器上,就报错![图片说明](https://img-ask.csdn.net/upload/201907/08/1562576482_194553.jpg) 非常非常奇怪、,,我看了数据库格式都是UTF-8 就是 script 那里不能把php解析的json给js 变量。。 求大佬帮助!!!!!! 为什么啊,我测试的时候都能 print出 json对象啊 header也加了 我觉得逻辑完全没问题啊啊啊啊
itext生成PDF 表格内容循环不出来 要不就是循环的JSON最后一个字段 传的是个JSON
![图片说明](https://img-ask.csdn.net/upload/201602/02/1454382728_597963.png) package com.pgs.core.util.print; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Vector; import net.sf.json.JSONArray; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Font; import com.itextpdf.text.PageSize; import com.itextpdf.text.Paragraph; import com.itextpdf.text.Rectangle; import com.itextpdf.text.pdf.BaseFont; import com.itextpdf.text.pdf.PdfPCell; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; import com.pgs.core.util.JsonUtil; import com.pgs.manage.system.bean.MainAreaCode; /** * * Title: PrinterBHD.java Description:补货单 * * @author songtao * @created 2016-1-29 下午1:45:47 */ public class PrinterBHD { /** * 导出pdf * * @throws Exception */ public static boolean printBHD(String json,int rownumber) { /* * Vector v = new Vector();//dao.selectEx(sql, 0); Map info = (HashMap) * v.get(0); */ // Map info = (HashMap)map.get("aaData"); Rectangle rectPageSize = new Rectangle(PageSize.A4); rectPageSize = rectPageSize.rotate(); Document doc = new Document(rectPageSize, 23, 25, 10, 10); Document document = null; try { BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// 设置中文字体 // 第一步:创建一个document对象。 document = new Document(); // 第二步:创建一个PdfWriter实例,将文件输出流指向一个文件。 PdfWriter.getInstance(document, new FileOutputStream( "D:/test/1.pdf")); // 第三步:打开文档。 document.open(); rectPageSize = rectPageSize.rotate(); PdfPCell cell = new PdfPCell(); Font tf = new Font(bfChinese, 10, Font.NORMAL); // 标头 Paragraph tpar = new Paragraph("供应商补货单", new Font(bfChinese, 18, Font.NORMAL)); tpar.setAlignment(Paragraph.ALIGN_CENTER); // 描述. float[] w1 = { 50f, 50f, 50f }; PdfPTable table = new PdfPTable(w1); table.setWidthPercentage(100); // json = // "{\"name\":\"admin\",\"retries\":\"3fff\",\"testname\":\"ddd\",\"testretries\":\"asdasdadsdasdasd\"} "; String sss = "[{\"realInspecAmount\":\"0.0000\",\"skuBrand\":\"小米\",\"index\":\"1\",\"skuSpec\":\"50g\",\"skuName\":\"康师傅方便面\",\"hasGift\":\"0\",\"realInspecCount\":\"90\", \"barcode\":\"6973342956023\",\"skuUnit\": \"壶\",\"channelSkuId\":\"56fb08ffc53611e5a4bab82a72d0db4b\",\"skuCode\":\"7334\",\"purchDetailId\":\"4\",\"billDate\":\"\2016-01-28 00:49:28.0\"}]"; json = "{\"realInspecAmount\":\"0.0000\",\"skuBrand\":\"小米\",\"index\":\"1\",\"skuSpec\":\"50g\",\"skuName\":\"康师傅方便面\",\"hasGift\":\"0\",\"realInspecCount\":\"90\", \"barcode\":\"6973342956023\",\"skuUnit\": \"壶\",\"channelSkuId\":\"56fb08ffc53611e5a4bab82a72d0db4b\",\"skuCode\":\"7334\",\"purchDetailId\":\"4\",\"billDate\":\"\2016-01-28 00:49:28.0\"}"; HashMap<String, Object> map = JsonUtil.json2Map(json); // 第一行 cell = new PdfPCell(new Paragraph("供应商编码:" + map.get("realInspecAmount"), tf)); cell.setBorder(0); cell.setPaddingTop(6f); table.addCell(cell); cell = new PdfPCell( new Paragraph("供应商名称:" + map.get("skuBrand"), tf)); cell.setBorder(0); cell.setPaddingTop(6f); table.addCell(cell); cell = new PdfPCell(new Paragraph("送货地址:" + map.get("testretries"), tf)); cell.setBorder(0); cell.setPaddingTop(6f); table.addCell(cell); // 第二行 cell = new PdfPCell(new Paragraph("补货单号:" + "11111111", tf)); cell.setBorder(0); cell.setPaddingBottom(6f); table.addCell(cell); cell = new PdfPCell(new Paragraph("补货制单人:" + "11111111", tf)); cell.setBorder(0); cell.setPaddingBottom(6f); table.addCell(cell); cell = new PdfPCell( new Paragraph("打印日期:" + map.get("billDate"), tf)); cell.setBorder(0); cell.setPaddingBottom(6f); table.addCell(cell); // 表格 float[] width = { 30f, 150f, 150f, 150f, 150f, 150f, 150f, 150f }; PdfPTable table2 = new PdfPTable(width); table2.setWidthPercentage(100); // 头 String[][] titles = { { "序号", "i", "" }, { "商品编码 ", "sku_code", "" }, { "商品名称", "sku_name", "" }, { "条码", "barcode", "" }, { "规格", "sku_spec", "" }, { "销售单位", "sale_min_unit", "" }, { "需求数", "bhd_sum", "" }, { "实收数", "", "" } }; Paragraph content = null; for (int i = 0; i < titles.length; i++) { content = new Paragraph(titles[i][0], tf); content.setAlignment(Paragraph.ALIGN_LEFT); cell = new PdfPCell(content); table2.addCell(cell); } //String sss = "[{\"b\":\"55\",\"a\":\"55\"},{\"b\":\"55\",\"a\":\"55\"},{\"b\":\"55\",\"a\":\"55\"},{\"b\":\"55\",\"a\":\"55\"},{\"b\":\"55\",\"a\":\"55\"},{\"b\":\"55\",\"a\":\"55\"}]"; ArrayList lll = (ArrayList) JSONArray.toList( JSONArray.fromObject(sss), HashMap.class); System.out.println(((HashMap) lll.get(0)).get("skuBrand")); //创建一个N列的表格控件 PdfPTable pdfTable2 = new PdfPTable(titles[7].length); //设置表格占PDF文档100%宽度 pdfTable2.setWidthPercentage(100); //水平方向表格控件左对齐 pdfTable2.setHorizontalAlignment(PdfPTable.ALIGN_LEFT); //创建一个表格的表头单元格 PdfPCell pdfTableHeaderCell = new PdfPCell(); PdfPCell pdfTableContentCell = new PdfPCell(); pdfTableContentCell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER); pdfTableContentCell.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE); //表格内容行数的填充 for(int i = 0;i < rownumber;i++){ for(String tableContentInfo : titles[1]){ pdfTableContentCell.setPhrase(new Paragraph(tableContentInfo, tf)); pdfTable2.addCell(pdfTableContentCell); } } // 脚 Paragraph fpar1 = new Paragraph("验货员:____________________" + "供应商送货人: ____________________" + "收货日期:____________________" + "合计 :_____", tf); // 第四步:在文档中增加一个段落。 document.add(tpar); document.add(table); document.add(table2); document.add(pdfTable2); document.add(fpar1); return true; }catch(FileNotFoundException de) { de.printStackTrace(); System.err.println("pdf file: " + de.getMessage()); return false; }catch(DocumentException de) { de.printStackTrace(); System.err.println("document: " + de.getMessage()); return false; }catch(IOException de) { de.printStackTrace(); System.err.println("pdf font: " + de.getMessage()); return false; }finally{ //关闭PDF文档流,OutputStream文件输出流也将在PDF文档流关闭方法内部关闭 if(document!=null){ document.close(); } } } public static void main(String[] args) { printBHD("", 3); } } /* for (int i = 0; i < lll.size(); i++) { for (int j = 0; j < titles.length; j++) { if (titles[j][1].equals("i")) content = new Paragraph(String.valueOf(i+1), tf); else { // 表格内容 for (Map.Entry<String, Object> entry : map.entrySet()) { content = new Paragraph(entry.getValue().toString(), tf); System.out.println(entry.getValue().toString()); } } content.setAlignment(Paragraph.ALIGN_CENTER); cell = new PdfPCell(content); table2.addCell(cell); } }*/ /*// 脚 Paragraph fpar1 = new Paragraph("验货员:____________________" + "供应商送货人: ____________________" + "收货日期:____________________" + "合计 :_____", tf); // 第四步:在文档中增加一个段落。 document.add(tpar); document.add(table); document.add(table2); document.add(fpar1); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (document != null) { // 第五步:关闭文档。 document.close(); } } return true; }*/
请问如何处理这样的binlog日志文件?
1.拿到手的是这样的一个log文件xxx.log: ``` orderPlan_test b'{"eventType":"INSERT","schemaName":"qixiao_test","rowAfter":{"update_time":1575291953000,"order_plan_id":63000036509,"create_time":1575291953000,"click_through_json":"{\\"landingPage\\":\\"http://www.baidu.com\\",\\"landingPageFlag\\":0,\\"appName\\":\\"tgnr120205\\",\\"account\\":\\"tgnr120205\\"}"},"tableName":"qx_order_plan_click_through","timestamp":1575291953000}' creative_test b'{"rowBefore":{"update_time":1575291971000,"create_time":1575291971000,"submit_time":1575291971000,"name":"\xe6\x88\x91\xe7\x9a\x84\xe5\x88\x9b\xe6\x84\x8f20191202210554","prod_status":0,"landing_page":"http://www.baidu.com","id":64000017479,"prod_fail_type":0,"landing_page_flag":0,"material_json":"{\\"name\\":\\"\xe6\x88\x91\xe7\x9a\x84\xe5\x88\x9b\xe6\x84\x8f20191202210554\\",\\"url\\":1585,\\"title\\":\\"\xe5\xb9\xbf\xe5\x91\x8a\xe6\x96\x87\xe6\xa1\x88123\\",\\"previewData\\":{\\"buttonTitle\\":\\"\xe4\xba\x86\xe8\xa7\xa3\xe8\xaf\xa6\xe6\x83\x85\\"},\\"events\\":{\\"impressionUrl\\":null,\\"clickUrl\\":null},\\"feedId\\":\\"1569467048\\",\\"clickThrough\\":{\\"landingPage\\":\\"http://www.baidu.com\\",\\"landingPageFlag\\":0,\\"appName\\":\\"tgnr120205\\",\\"account\\":\\"tgnr120205\\"}}","status":1},"eventType":"UPDATE","schemaName":"qixiao_test","rowAfter":{"update_time":1575291971000,"create_time":1575291971000,"submit_time":1575291971000,"name":"\xe6\x88\x91\xe7\x9a\x84\xe5\x88\x9b\xe6\x84\x8f20191202210554","prod_status":1,"landing_page":"http://www.baidu.com","id":64000017479,"prod_fail_type":0,"landing_page_flag":0,"material_json":"{\\"name\\":\\"\xe6\x88\x91\xe7\x9a\x84\xe5\x88\x9b\xe6\x84\x8f20191202210554\\",\\"url\\":1585,\\"title\\":\\"\xe5\xb9\xbf\xe5\x91\x8a\xe6\x96\x87\xe6\xa1\x88123\\",\\"previewData\\":{\\"buttonTitle\\":\\"\xe4\xba\x86\xe8\xa7\xa3\xe8\xaf\xa6\xe6\x83\x85\\"},\\"events\\":{\\"impressionUrl\\":null,\\"clickUrl\\":null},\\"feedId\\":\\"1569467048\\",\\"clickThrough\\":{\\"landingPage\\":\\"http://www.baidu.com\\",\\"landingPageFlag\\":0,\\"appName\\":\\"tgnr120205\\",\\"account\\":\\"tgnr120205\\"}}","status":1},"tableName":"qx_creative_staging","timestamp":1575291971000}' orderPlan_test b'{"eventType":"INSERT","schemaName":"qixiao_test","rowAfter":{"update_time":1575291953000,"order_plan_id":63000036509,"create_time":1575291953000,"target_json":"[{\\"id\\":32,\\"type\\":1,\\"isAnti\\":false},{\\"id\\":33,\\"type\\":1,\\"isAnti\\":false},{\\"id\\":1,\\"type\\":210,\\"isAnti\\":false},{\\"id\\":3,\\"type\\":210,\\"isAnti\\":false},{\\"id\\":4,\\"type\\":210,\\"isAnti\\":false},{\\"id\\":2,\\"type\\":210,\\"isAnti\\":false}]"},"tableName":"qx_order_plan_target","timestamp":1575291953000}' ……………… ``` 2.明显可见每隔一行是个json格式,我现在希望将这个解析成dic。如果手动赋值,显然是可行的。 ![图片说明](https://img-ask.csdn.net/upload/201912/03/1575363981_861834.png) 3.但是若果我用with open(filename,'r') 打开binlog文件,每一行结果是str格式,无法decode。请问该如何解决?![图片说明](https://img-ask.csdn.net/upload/201912/03/1575364128_83031.png) 4.如果用with open(filename,'r+b')打开还是不行 ![图片说明](https://img-ask.csdn.net/upload/201912/03/1575364716_97177.png) 5.1L回答的方法的问题是rowBefore,rowAfter里的中文编码,以及这两个key里嵌套的json格式不对
iOS swift 解析json出现乱码
{ CI1 = 1; CI2 = 3; CI3 = 6; CI4 = 8; CI5 = 9; CI6 = 12; CN1 = "14(1)"; CN2 = "13(1)"; CN3 = "13(2)"; CN4 = "13(4)"; CN5 = "12(4)"; CN6 = "12(1)"; GID1 = 13; GID2 = 12; GN1 = "\U6570\U5b66"; GN2 = "\U7269\U7406"; KEY = CGGpLHs; KN = "\U963f\U65af\U8482\U82ac"; KS = 1; SC = 0; SUP = Y; TN = "\U8c2d\U52b2"; tID = 1; }解析的结果,原本是字符串的数据都变成了乱码,例如kn和tn的数据原本是汉字,现在都成编码了。 使用的是这个解析方式 http.post(url, mapPair: dict, completionHandler: {(data: NSData?, error: NSError?) -> Void in if (error != nil){ println("error=\(error!.localizedDescription)") }else{ let jsonDictionary: NSDictionary = NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers, error: nil) as! NSDictionary println(data) println(jsonDictionary) } })还望广大懂得给个指点,要怎么弄才能把汉字也解析出来呢?谢谢!!!!!
python获取邮箱的内容后,怎么取到里面的验证码
# 连接到POP3服务器: server = poplib.POP3(pop3_server) # 可以打开或关闭调试信息: # server.set_debuglevel(1) # 可选:打印POP3服务器的欢迎文字: print(server.getwelcome().decode('utf-8')) # 身份认证: server.user(email) server.pass_(password) # stat()返回邮件数量和占用空间: print('Messages: %s. Size: %s' % server.stat()) # list()返回所有邮件的编号: resp, mails, octets = server.list() # 可以查看返回的列表类似[b'1 82923', b'2 2184', ...] # print(mails) # 获取最新一封邮件, 注意索引号从1开始: index = len(mails) resp, lines, octets = server.retr(index) # lines存储了邮件的原始文本的每一行, # 可以获得整个邮件的原始文本: msg_content = b'\r\n'.join(lines).decode('utf-8') # 稍后解析出邮件: msg = Parser().parsestr(msg_content) print_info(msg) ![图片说明](https://img-ask.csdn.net/upload/201912/05/1575552952_417417.png) 全部源码如下: # -*- coding: utf-8 -*- from email.parser import Parser from email.header import decode_header from email.utils import parseaddr import poplib import requests import json import re # 输入邮件地址, 口令和POP3服务器地址: email = "123456789@qq.com" password = "abcdefg" pop3_server = "pop.qq.com" # 文本邮件的内容也是str,还需要检测编码,否则,非UTF-8编码的邮件都无法正常显示 def guess_charset(msg): charset = msg.get_charset() if charset is None: content_type = msg.get('Content-Type', '').lower() pos = content_type.find('charset=') if pos >= 0: charset = content_type[pos + 8:].strip() return charset def decode_str(s): # decode_header()返回一个list 偷懒,只取了第一个元素 value, charset = decode_header(s)[0] if charset: value = value.decode(charset) return value def print_info(msg, indent=0): if indent == 0: for header in ['From', 'To', 'Subject']: value = msg.get(header, '') if value: if header=='Subject': value = decode_str(value) else: hdr, addr = parseaddr(value) name = decode_str(hdr) value = u'%s <%s>' % (name, addr) print('%s%s: %s' % (' ' * indent, header, value)) if (msg.is_multipart()): parts = msg.get_payload() for n, part in enumerate(parts): print('%spart %s' % (' ' * indent, n)) print('%s--------------------' % (' ' * indent)) print_info(part, indent + 1) else: content_type = msg.get_content_type() if content_type=='text/plain' or content_type=='text/html': content = msg.get_payload(decode=True) charset = guess_charset(msg) if charset: content = content.decode(charset) print('%sText: %s' % (' ' * indent, content + '...')) else: print('%sAttachment: %s' % (' ' * indent, content_type)) # 连接到POP3服务器: server = poplib.POP3(pop3_server) # 可以打开或关闭调试信息: # server.set_debuglevel(1) # 可选:打印POP3服务器的欢迎文字: print(server.getwelcome().decode('utf-8')) # 身份认证: server.user(email) server.pass_(password) # stat()返回邮件数量和占用空间: print('Messages: %s. Size: %s' % server.stat()) # list()返回所有邮件的编号: resp, mails, octets = server.list() # 可以查看返回的列表类似[b'1 82923', b'2 2184', ...] # print(mails) # 获取最新一封邮件, 注意索引号从1开始: index = len(mails) resp, lines, octets = server.retr(index) # lines存储了邮件的原始文本的每一行, # 可以获得整个邮件的原始文本: msg_content = b'\r\n'.join(lines).decode('utf-8')\ # 稍后解析出邮件: msg = Parser().parsestr(msg_content) print_info(msg)
python 爬虫遇到问题了,这个问题怎么办
我们老师让写一个爬虫,爬东方财富每个股票的历史流动资金,我写出来后,运行程序,前面没什么问题,到后面就有问题了 代码如下:import requests import pandas import json import pymssql import re #获取股票资金流量网页的数据 def GetHtml(url): html=requests.get(url) html=html.text return html #对数据进行拆分 def CleanData(html): Str_data=html[len('jQuery1830006374794149931473_1577602052640')+1:-2] #对数据进行切割 Str_data2=json.loads(Str_data)['data'] #对无用数据进行再切分获取代码和名称 print(Str_data2['code']) code = Str_data2['code'] #股票编码 name = Str_data2['name'] #股票名称 data=[] for i in range (len(Str_data2['klines'])): data.append(Str_data2['klines'][i]) dealData(data,name,code) data.clear() Str_data2.clear() #对拆分数据进行整理 def dealData(datalist,name,code): #对列表中元素进行切片 new_datalist = ''.join(datalist) new_datalist=new_datalist.split(',') Name=name Code=code #将新列表放入数据库中 insertDatabase(new_datalist,Name,Code) new_datalist.clear() #将数据导入数据库中 def insertDatabase(datalist,Name,Code): #对新列表数据进行分类 date=datalist[0] #时间 close_price=datalist[11] #收盘价 Quote_change=datalist[12] #涨跌幅 Main_net=datalist[1] #主力净额 Main_foce=datalist[6] #主力净占比 Over_net=datalist[5] #超大单净额 Over_foce=datalist[10] #超大单净占比 Big_net=datalist[4] #大单净额 Big_foce=datalist[9] #大单净占比 Mid_net=datalist[3] #中单净额 Mid_foce=datalist[8] #中单净占比 Sm_net=datalist[2] #小单净额 Sm_foce=datalist[7] #小单净占比 data=(Name,Code,date,close_price,Quote_change,Main_net,Main_foce,Over_net,Over_foce,Big_net,Big_foce,Mid_net,Mid_foce,Sm_net,Sm_foce) sql="insert into Moneymove values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);" #建立连接 conn = pymssql.connect(host="localhost:1433", user="sa", password="123456", database="test", charset="UTF-8") cursor = conn.cursor() #插入测试数据 cursor.execute(sql , data) conn.commit() del data conn.close() #创建数据库 def Createdatabase(): conn = pymssql.connect(host="localhost:1433", user="sa", password="123456", database="test", charset="UTF-8") cursor = conn.cursor() cursor.execute(""" create table Moneymove( 股票代码 varchar(100), 股票名称 varchar(100), 时间 varchar(100) , 收盘价 varchar(100), 涨跌幅 varchar(100), 主流净额 varchar(100), 主流净占比 varchar(100), 超大单净额 varchar(100), 超大单净占比 varchar(100), 大单净额 varchar(100), 大单净占比 varchar(100), 中单净额 varchar(100), 中单净占比 varchar(100), 小单净额 varchar(100), 小单净占比 varchar(100) ) """) conn.commit() conn.close() # def NeedData(): # 建立连接并获取cursor conn = pymssql.connect(host="localhost:1433", user="sa", password="123456", database="test", charset="UTF-8") cursor = conn.cursor() # 如果连接时没有设置autocommit为True的话,必须主动调用commit() 来保存更改。 conn.commit() # 查询记录 cursor.execute('SELECT 股票代码 From SwClass$ ') # 获取一条记录 row = cursor.fetchone() code_list=[] # 循环打印记录(这里只有一条,所以只打印出一条) for i in range (3769): if row[0] != None: if str(row[0][0]) =='6': code='1.'+row[0] code_list.append(code) else: code = '0.'+row[0] code_list.append(code) row = cursor.fetchone() return code_list # 连接用完后记得关闭以释放资源 conn.close() def main(): Createdatabase() code_list=NeedData() print(code_list) for i in code_list: url='http://push2his.eastmoney.com/api/qt/stock/fflow/daykline/get?lmt=0&klt=101&secid='+ str(i)+'&fields1=f1,f2,f3,f7&fields2=f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61,f62,f63,f64,f65&ut=b2884a393a59ad64002292a3e90d46a5&cb=jQuery1830006374794149931473_1577602052640&_=1577602052949' html=GetHtml(url) CleanData(html) main() 出现的问题是这个: Traceback (most recent call last): File "C:/Users/VULCAN/Desktop/爬虫实习/3.py", line 135, in <module> main() File "C:/Users/VULCAN/Desktop/爬虫实习/3.py", line 134, in main CleanData(html) File "C:/Users/VULCAN/Desktop/爬虫实习/3.py", line 25, in CleanData dealData(data,name,code) File "C:/Users/VULCAN/Desktop/爬虫实习/3.py", line 39, in dealData insertDatabase(new_datalist,Name,Code) File "C:/Users/VULCAN/Desktop/爬虫实习/3.py", line 65, in insertDatabase conn = pymssql.connect(host="localhost:1433", user="sa", password="123456", database="test", charset="UTF-8") File "src\pymssql.pyx", line 636, in pymssql.connect File "src\_mssql.pyx", line 1957, in _mssql.connect File "src\_mssql.pyx", line 675, in _mssql.MSSQLConnection.__init__ ValueError: list.remove(x): x not in list 请问各位大佬,这要如何解决?
python3.5使用parse.unquote解码一段疑似url编码,但依然输出乱码
``` import re import requests import fmt import json from urllib import parse a=""" seatpolicys=x%C2%9C%C3%95%C2%8F%C2%B1j%C3%830%10%C2%86_E%C3%9Cl%C2%95%C2%93%C2%84%C2%9DHo%C2%A3Z%C2%A2%C2%886%C2%8E%C2%A9%C3%A5%C3%81%C2%84%40%20%5B%C2%B7Nq%C2%B24K%C2%A0%5D%3Aw%C3%88%C3%A3%C2%A4.y%C2%8B%C3%8AJp!d%C3%AAR%0A%C2%B7%C3%9Cw%C2%BF%C3%AE%C3%B4%C3%8D%60%24d%3A%025%C2%83r%C3%BA%C3%A0%C3%B2%26%C2%9F%1A%C3%AB%0C%C2%A8%C2%88%13(%C3%B4%C3%84%C2%82%C2%82n%C3%BD~%5Cl%C2%BEv%C2%AF%C2%90%40%C3%A5%C3%B5%C2%A37%C3%9A%C3%B7%C2%9C%23%C2%93%14%C2%B3P%04Q%C3%85%0A%09%5B%C2%98a%C3%8E%C2%91%C2%A2%C2%A4%02%09G%25P%C2%A52%C3%8C%C3%AB%C3%8Az%17%C3%B7%C2%86%07%C2%94%C2%8B%13%C2%BD%C2%AD%C3%83%C3%B1%C2%BA%C3%B0%013%C3%9A%C2%AFqU%C2%A9%C3%B3%7B%7D%17%C2%83%C2%A1%3FwC(%C2%A2fb%0B%C3%AF%C2%9B%C3%92%C2%9E%C2%89q%C3%95%10%40%C2%BC%C3%81%C3%B0%C2%A1y%C3%92Kf%C3%AC%C2%AAd%C3%86.%24%0F%C3%BB%C3%8D%C3%A7sK%C3%A4%C2%B8%7Bj%C3%BF%C2%B1-%C2%BFn%C3%8B%7FlWo%C3%87%C2%8F%C2%97%C3%83%C2%BE%C3%AD%C2%96%5B2N%7Fc%7B%C2%9A3A%C2%A2%C3%94%C3%9F%C3%98%C3%8E%C2%BF%01Cd%C3%93%C2%81 """ b=parse.unquote(a) print(b) ``` 以下是输出: ``` seatpolicys=x聹脮聫卤j脙0聠_E脺l聲聯聞聺Ho拢Z垄聢6聨漏氓脕聞@ [路Nq虏4K聽]:w脠茫陇.y聥脢Jp!d锚R 路脺w驴卯么脥`$d:5聝r煤脿貌&聼毛篓聢(么脛聜聜n媒~\l戮v炉聬@氓玫拢7脷梅聹#聯鲁PQ脜 [聵a脦聭垄陇 G%P楼2脤毛脢z梅聠聰聥陆颅脙帽潞冒3脷炉qU漏贸{}聝隆?wC(垄fb茂聸脪聻聣q脮@录脕冒隆y脪Kf矛陋d脝.$没脥莽sK盲赂{j每卤-驴n脣lWo脟聫聴脙戮铆聳[2Nc{職3A垄脭脽脴脦驴Cd脫聛 ```
如今还有必要使用Webservice么?
不知道算不是一个过时的问题。 这里指的是狭义的Webservice,那种使用soap的,即用xml传输数据的。相比较,诸如springMVC提供的controller这种http接口服务。同样都是通过一个url+请求数据来访问的后台服务。 我知道这两者在基础原理上是不同的,比如协议的层面等等,但就使用场景而言,有什么是ws能做而get/post做不到,或者ws做的更好的呢?毕竟开发效率上来说明显普通http服务更喜闻乐见。 如今网上搜到的介绍ws的信息所阐述的优点也是比较过时。比如ws解决了前后端跨语言跨平台,请求跨域等等,这些问题还处在把后端代码写在页面上的年代。还有XML能表达更复杂的结构,如今用json也能达到一样的效果。 至于安全性啊、编码啊、性能啊更没关系了吧,都是通过http协议来传输的,A能做的事情B也都能做
使用java的Http请求里的Url对象调用第三方接口返回的数据中文乱码
URL url = new URL("http://apis.5118.com/morerank/baidupc"); // 将url 以 open方法返回的urlConnection 连接强转为HttpURLConnection连接 (标识一个url所引用的远程对象连接) // 此时cnnection只是为一个连接对象,待连接中 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); // 设置连接输出流为true,默认false (post 请求是以流的方式隐式的传递参数) connection.setDoOutput(true); // 设置连接输入流为true connection.setDoInput(true); // 设置请求方式为post connection.setRequestMethod("POST"); connection.setRequestProperty("Charsert", "UTF-8"); //设置请求编码 // post请求缓存设为false connection.setUseCaches(false); // 设置该HttpURLConnection实例是否自动执行重定向 connection.setInstanceFollowRedirects(true); // 设置请求头里面的各个属性 (以下为设置内容的类型,设置为经过urlEncoded编码过的from参数) // application/x-javascript text/xml->xml数据 application/x-javascript->json对象 application/x-www-form-urlencoded->表单数据 // ;charset=utf-8 必须要,不然妙兜那边会出现乱码【★★★★★】 //addRequestProperty添加相同的key不会覆盖,如果相同,内容会以{name1,name2} connection.addRequestProperty("from", "sfzh"); //来源哪个系统 //setRequestProperty添加相同的key会覆盖value信息 //setRequestProperty方法,如果key存在,则覆盖;不存在,直接添加。 //addRequestProperty方法,不管key存在不存在,直接添加。 connection.setRequestProperty("Authorization", " APIKEY D9FD7C014E8E4367B2891EF5B4B493"); connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); // 建立连接 (请求未开始,直到connection.getInputStream()方法调用时才发起,以上各个参数设置需在此方法之前进行) connection.connect(); // 创建输入输出流,用于往连接里面输出携带的参数,(输出内容为?后面的内容) DataOutputStream dataout = new DataOutputStream(connection.getOutputStream()); // 格式 parm = aaa=111&bbb=222&ccc=333&ddd=444 String parm = "taskid="+taskid; System.out.println("传递参数:" + parm); // 将参数输出到连接 dataout.writeBytes(parm); // 输出完成后刷新并关闭流 dataout.flush(); dataout.close(); // 重要且易忽略步骤 (关闭流,切记!) //System.out.println(connection.getResponseCode()); // 连接发起请求,处理服务器响应 (从连接获取到输入流并包装为bufferedReader) BufferedReader bf = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); String line; StringBuilder sb = new StringBuilder(); // 用来存储响应数据 // 循环读取流,若不到结尾处 while ((line = bf.readLine()) != null) { //sb.append(bf.readLine()); String lin=new String(line.getBytes(), "utf-8"); sb.append(lin); } bf.close(); // 重要且易忽略步骤 (关闭流,切记!) connection.disconnect(); // 销毁连接 return sb.toString(); 返回的数据中文乱码使用java的Http请求里的Url对象调用第三方接口返回的数据中文乱码
vb.net 数据库post问题,怎么接收。
别人的网络数据库post到一个地址,我该怎么接收这些数据啊?求指导啊, ![](http://img.bbs.csdn.net/upload/201801/24/1516762190_495594.png) 当表单提交新数据,或修改表单数据保存时,可以将需要保存的数据同时以post的方式以json格式提交到一个第三方的URL地址,您可以在第三方应用程序中处理这些数据,数据结构如左侧表格。 [API开发文档](http://www.bossbang.top/v/5912acfc707d0f4a73d9bcef "") API简介 第三方接口,简单说,就是允许其他应用开发者调用该API允许调用的平台资源。 设置了API,就可以将表单新提交的数据推送到自己的平台,或在自己的平台查询表单提交的数据和评论。 目前支持的API如下: API文档 获取表单列表 获取报表列表 查询表单数据 获取评论数据 API访问规则 所有的数据格式为JSON 所有的数据传输编码为UTF-8 目前,API访问的地址来源为http://api.jsform.com/api/v1/ 除了数据推送API外,所有的API都需要恰当的API访问权限。目前我们仅支持HTTP Basic验证的方式。使用方法可参见:http://www.cnblogs.com/QLeelulu/archive/2009/11/22/1607898.html 获取API Key/Secret 在开始使用之前,您需要在“账户”中获取API Key/Secret,只有通过这两个参数才能获取API的访问权限。 表单API 获取表单信息 描述 根据表单id获取表单信息(表单名称、表单描述等)。 访问地址 http://api.jsform.com/api/v1/form/{formId} 访问方式 GET 参数 参数名 数据类型 是否必须 示例值 默认值 描述 formId String 是 55b639212e8f3685227bf154 表单ID 返回值 参数名 描述 status 执行状态。”success”表示成功,”error”表示失败 message 如果失败,用此字段描述失败原因。如果成功,此字段为空。 form 表单的详细信息 返回示例 {"status":"success","form":{"id":"55b639212e8f3685227bf154","form_desc":"表单描述", "update_time":1438453044305, "form_name":"表单名称", "create_by":"admin@jsform.com", "group_id":"55bc8d0c2e8f4d363ba991c9","group_name":"分组名称","create_time":1438005537663,"update_by":"admin@jsform.com"}} 表单列表字段说明 字段名 描述 id 表单ID form_name 表单名称 form_desc 表单描述 group_id 表单分组ID group_name 表单分组名称 create_by 创建人 create_time 创建时间 update_by 最后修改人 update_time 最后修改时间 curl示例 curl -u 51470abd078d49c496fda859:vWXVAWXeEQKfLlerFDMD3rsekBQzU5tz --header "Content-Type:application/json" --url http://api.jsform.com/api/v1/form/55b639212e8f3685227bf154
关于PHP和JAVA之间的AES加密互通问题
公司今日接到一个需求,要与银行方面进行对接,接收银行方面 推送过来的加密信息,解密后入库进行统计,由于银行方是JAVA环境,我司是PHP环境,所以需要写一个PHP的解密方法,查阅各种文档后还是无法满足需求,无法进行解密,特来求助. 银行方只有一个加密流程文档: 加密方式:AES/ECB/PKCS5Padding 1、将data中的字段转成json格式如下: ``` {"userId":"12345678911111233","state":"2","cardNo":"625966","time":"20171212","extInfo":""} ``` 2、URLEncode对josn字符串进行编码UTF-8防止中文乱码 ``` URLEncoder.encode(data, "UTF-8") %7B%22userId%22%3A%2212345678911111233%22%2C%22state%22%3A%222%22%2C%22cardNo%22%3A%22625966%22%2C%22time%22%3A%2220171212%22%2C%22extInfo%22%3A%22%22%7D ``` 3、使用aesKey对URLEncode后的字符串进行AES加密, 得到data: ``` aesKey=Spdbccc-testtest XBD5nXa7oAnsWo/l843zUfmuhpmWGKEieJoJXxZEHPun1zfQhEPBFKv5kXZMM8i2Vr9RJwZeW/zn6OScGSlRTNVaytu2M5CDABw6B1grqxCqjTu/fKTp3hpMJd0riMB7H7ZK5xGUBu2nGgacjPmVcVl8Xm34fdArx17DkHbHqOWgiwmesk0C/lgKK7hkyuiuVtEQPmc02Ipjx3JGyJ+59g== ``` 我这边先是按照查询的文档中所说直接使用PHP自带的mcrypt扩展进行解密,发现php7.2已经弃用该扩展,换成openssl方式使用AES-128-ECB进行解密返回值是false;后来我转变思路,先用openssl以AES-128-ECB模式对第二步的串进行加密,获取到的结果和步骤三中的完全不一样,我改用先获取openssl的加密模式列表然后循环加密,输出各个加密方式的结果,发现没有一个能对上,到此以我的水平已经不知道该如何进行下一步了,特来求助!
爬取bilibili破解滑动验证码下载图片遇到问题
如何获取json数据 1、图片异步加载,通过获取异步加载json数据拼接下载地址 2、直接访问request url获取不到字符串 ![图片说明](https://img-ask.csdn.net/upload/201905/08/1557290545_819616.jpg) 3、我的代码: ``` import urllib import urllib.request import requests url='https://api.geetest.com/get.php?' headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36' } data = { 'is_next': 'true', 'type': 'slide3', 'gt': 'b6cc0fc51ec7995d8fd3c637af690de3', 'challenge': 'b59c314d1cff16af80de0f0a904c614f', 'lang': 'zh-cn', 'https': 'false', 'protocol': 'https://', 'offline': 'false', 'product': 'embed', 'api_server': 'api.geetest.com', 'isPC': 'true', 'area': '#geetest-wrap', 'width': '100%', 'callback': 'geetest_1557281366134' } # 编码 key_words = urllib.parse.urlencode(data) urls = url+key_words # a =requests.get(url = urls,headers=headers).text a =urllib.request.Request(url = urls,headers=headers,data=data) b = urllib.request.urlopen(a).read() print(b) ```
关于操作日志如何设计,让用户能看懂的日志(留痕操作)
框架:springboot(微服务) 需求:需要建一个日志服务,专门记录客户的操作日志(留痕),银行业务,对于数据非常敏感。 我得设计模式: 利用自定义注解,Aop来记录日志 注解: ``` /** * 操作日志注解 * @author dulianyong 2019/3/24 */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface OperationLogAnno { // 操作模块 String module(); // 操作类型 String type(); // 被修改对象 String id() default ""; // 具体操作 String operate1() default ""; String operate2() default ""; String operate3() default ""; String operate4() default ""; String operate5() default ""; String operate6() default ""; String operate7() default ""; } ``` 加注解的controller: ``` @PostMapping(path = "/add", produces = MediaType.APPLICATION_JSON_VALUE) @OperationLogAnno(module = "角色管理", type = "add", operate1 = "#{role}") public ObjectRestResponse add(@RequestBody Role role) throws BaseException { //logInfoService.logSaveToDb("角色管理:新增"); roleService.add(role); return new ObjectRestResponse().rel(true); } ``` 角色实体 ``` /** * 角色信息表 * * @author minliangqin * @since 2018-03-12 15:02:10 */ @MappedSuperclass @Data @Table(name = "t_base_role") @ApiModel(value="角色信息表参数", description = "角色信息表参数描述") public class Role extends OracleEntity implements Serializable,UniqueVerifiableVO { private static final long serialVersionUID = 1L; @Id @KeySql(genId = UUIDGenerator.class) @Column(name = "fid") private String id; /** * 角色名称 */ @Column(name = "frole_name") @ApiModelProperty(value="角色名称", required = true) private String name; /** * 备注 */ @Column(name = "fremark") @ApiModelProperty(value="备注", required = true) private String description; /** * 归属机构ID */ @Column(name = "forg_id") @ApiModelProperty(value="归属机构ID", required = true) private Integer orgId; /** * 角色编码 */ @Column(name = "fcode") @ApiModelProperty(value="角色编码", required = true) private String code; /** * 创建时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Column(name = "fcreate_time") private Date createTime; /** * 归属系统编码 */ @Column(name = "fsys_id") @ApiModelProperty(value="归属系统编码", required = true) private Integer sysId; /** * 用户类型 */ @Column(name = "ftype") @ApiModelProperty(value="用户类型", required = true) private Integer type; /** * 是否审核 0未审核|1已审核 */ @Column(name = "fchecked") private Integer checked; /** * 审核人id */ @Column(name = "fchecker_id") private String checkerId; /** * 审核时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Column(name = "fchecker_time") private Date checkerTime; @Override public String fetchUniqueProperty() { return "name&description"; } } ``` 获取插入的role实体 ``` if (type.equals("add")){ // 具体操作 Object operate1 = annotationResolver.resolver(joinPoint, controllerLog.operate1()); message = "新增:" + JSON.toJSONString(operate1); } ``` 我现在为了简便,直接把它转换成json对象扔到数据库了, ``` 新增:{"checked":0,"createTime":1553418453029,"creatorId":"d101468acaf34ddabac9646d2d920113","deleteTime":-28800000,"deleted":0,"deletorId":"0","description":"111","id":"28751ed9ab554b559737216b77584631","lastEditTime":1553418453029,"lastEditorId":"d101468acaf34ddabac9646d2d920113","name":"111","orgId":0,"type":2} ``` 问题是:我如何把checked,createTime等属性转换成汉字形式,让客户看懂,或者有什么更好的存储日志的方法,求好的思路。,没有c币了,谢谢大家!
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
死磕YOLO系列,YOLOv1 的大脑、躯干和手脚
YOLO 是我非常喜欢的目标检测算法,堪称工业级的目标检测,能够达到实时的要求,它帮我解决了许多实际问题。 这就是 YOLO 的目标检测效果。它定位了图像中物体的位置,当然,也能预测物体的类别。 之前我有写博文介绍过它,但是每次重新读它的论文,我都有新的收获,为此我准备写一个系列的文章来详尽分析它。这是第一篇,从它的起始 YOLOv1 讲起。 YOLOv1 的论文地址:https://www.c
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该问题下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalk
记一次腾讯面试:进程之间究竟有哪些通信方式?如何通信? ---- 告别死记硬背
有一次面试的时候,被问到进程之间有哪些通信方式,不过由于之前没深入思考且整理过,说的并不好。想必大家也都知道进程有哪些通信方式,可是我猜很多人都是靠着”背“来记忆的,所以今天的这篇文章,讲给大家详细着讲解他们是如何通信的,让大家尽量能够理解他们之间的区别、优缺点等,这样的话,以后面试官让你举例子,你也能够顺手拈来。 1、管道 我们来看一条 Linux 的语句 netstat -tulnp | gr...
20行Python代码爬取王者荣耀全英雄皮肤
引言 王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。 准备工作 爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网: 我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片
网络(8)-HTTP、Socket、TCP、UDP的区别和联系
TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。 一、TCP与UDP的不同 1. 是否需要建立连接。 UDP在传送数据之前不需要先建立连接;TCP则提供面向连接的服务; 2. 是否需要给出确认 对方的传输层在收到UDP报文后,不需要给出任何确认,而 TCP需要给出确认报文,要提供可靠的、面向连接的传输服务。 3.虽然UDP不提供可靠交...
简明易理解的@SpringBootApplication注解源码解析(包含面试提问)
欢迎关注文章系列 ,关注我 《提升能力,涨薪可待》 《面试知识,工作可待》 《实战演练,拒绝996》 欢迎关注我博客,原创技术文章第一时间推出 也欢迎关注公 众 号【Ccww笔记】,同时推出 如果此文对你有帮助、喜欢的话,那就点个赞呗,点个关注呗! 《提升能力,涨薪可待篇》- @SpringBootApplication注解源码解析 一、@SpringBootApplication 的作用是什
防劝退!数据结构和算法难理解?可视化动画带你轻松透彻理解!
大家好,我是 Rocky0429,一个连数据结构和算法都不会的蒟蒻… 学过数据结构和算法的都知道这玩意儿不好学,没学过的经常听到这样的说法还没学就觉得难,其实难吗?真难! 难在哪呢?当年我还是个小蒟蒻,初学数据结构和算法的时候,在忍着枯燥看完定义原理,之后想实现的时候,觉得它们的过程真的是七拐八绕,及其难受。 在简单的链表、栈和队列这些我还能靠着在草稿上写写画画理解过程,但是到了数论、图...
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给
开挂的人生!那些当选院士,又是ACM/IEEE 双料Fellow的华人学者们
昨日,2019年两院院士正式官宣,一时间抢占了各大媒体头条。 朋友圈也是一片沸腾,奔走相告,赶脚比自己中了大奖还嗨皮! 谁叫咱家导师就是这么厉害呢!!! 而就在最近,新一年度的IEEE/ACM Fellow也将正式公布。 作为学术届的顶级荣誉,不自然地就会将院士与Fellow作比较,到底哪个含金量更高呢? 学术君认为,同样是专业机构对学者的认可,考量标准不一,自然不能一概而论。 但...
聊聊C语言和指针的本质
坐着绿皮车上海到杭州,24块钱,很宽敞,在火车上非正式地聊几句。 很多编程语言都以 “没有指针” 作为自己的优势来宣传,然而,对于C语言,指针却是与生俱来的。 那么,什么是指针,为什么大家都想避开指针。 很简单, 指针就是地址,当一个地址作为一个变量存在时,它就被叫做指针,该变量的类型,自然就是指针类型。 指针的作用就是,给出一个指针,取出该指针指向地址处的值。为了理解本质,我们从计算机模型说起...
Python语言高频重点汇总
Python语言高频重点汇总 GitHub面试宝典仓库——点这里跳转 文章目录Python语言高频重点汇总**GitHub面试宝典仓库——点这里跳转**1. 函数-传参2. 元类3. @staticmethod和@classmethod两个装饰器4. 类属性和实例属性5. Python的自省6. 列表、集合、字典推导式7. Python中单下划线和双下划线8. 格式化字符串中的%和format9.
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
代码详解:如何用Python快速制作美观、炫酷且有深度的图表
全文共12231字,预计学习时长35分钟生活阶梯(幸福指数)与人均GDP(金钱)正相关的正则图本文将探讨三种用Python可视化数据的不同方法。以可视化《2019年世界幸福报告》的数据为例,本文用Gapminder和Wikipedia的信息丰富了《世界幸福报告》数据,以探索新的数据关系和可视化方法。《世界幸福报告》试图回答世界范围内影响幸福的因素。报告根据对“坎特里尔阶梯问题”的回答来确定幸...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
(经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
今年正式步入了大四,离毕业也只剩半年多的时间,回想一下大学四年,感觉自己走了不少弯路,今天就来分享一下自己大学的学习经历,也希望其他人能不要走我走错的路。 (一)初进校园 刚进入大学的时候自己完全就相信了高中老师的话:“进入大学你们就轻松了”。因此在大一的时候自己学习的激情早就被抛地一干二净,每天不是在寝室里玩游戏就是出门游玩,不过好在自己大学时买的第一台笔记本性能并不是很好,也没让我彻底沉...
如何写一篇技术博客,谈谈我的看法
前言 只有光头才能变强。 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 我一直推崇学技术可以写技术博客去沉淀自己的知识,因为知识点实在是太多太多了,通过自己的博客可以帮助自己快速回顾自己学过的东西。 我最开始的时候也是只记笔记,认为自己能看得懂就好。但如果想验证自己是不是懂了,可以写成技术博客。在写技术博客的...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
互联网公司的裁员,能玩出多少种花样?
裁员,也是一门学问,可谓博大精深!以下,是互联网公司的裁员的多种方法:-正文开始-135岁+不予续签的理由:千禧一代网感更强。95后不予通过试用期的理由:已婚已育员工更有责任心。2通知接下来要过苦日子,让一部分不肯同甘共苦的员工自己走人,以“兄弟”和“非兄弟”来区别员工。3强制996。员工如果平衡不了工作和家庭,可在离婚或离职里二选一。4不布置任何工作,但下班前必须提交千字工作日报。5不给活干+...
【设计模式】单例模式的八种写法分析
网上泛滥流传单例模式的写法种类,有说7种的,也有说6种的,当然也不排除说5种的,他们说的有错吗?其实没有对与错,刨根问底,写法终究是写法,其本质精髓大体一致!因此完全没必要去追究写法的多少,有这个时间还不如跟着宜春去网吧偷耳机、去田里抓青蛙得了,一天天的....
《面试宝典》:检验是否为合格的初中级程序员的面试知识点,你都知道了吗?查漏补缺
欢迎关注文章系列,一起学习 《提升能力,涨薪可待篇》 《面试知识,工作可待篇》 《实战演练,拒绝996篇》 也欢迎关注公 众 号【Ccww笔记】,原创技术文章第一时间推出 如果此文对你有帮助、喜欢的话,那就点个赞呗,点个关注呗! 《面试知识,工作可待篇》-Java笔试面试基础知识大全 前言 是不是感觉找工作面试是那么难呢? 在找工作面试应在学习的基础进行总结面试知识点,工作也指日可待,欢...
关于研发效能提升的思考
研发效能提升是最近比较热门的一个话题,本人根据这几年的工作心得,做了一些思考总结,由于个人深度有限,暂且抛转引入。 三要素 任何生产力的提升都离不开这三个因素:人、流程和工具,少了其中任何一个因素都无法实现。 人,即思想,也就是古人说的“道”,道不同不相为谋,是制高点,也是高层建筑的基石。 流程,即方法,也是古人说的“法”。研发效能的提升,也就是要提高投入产出比,既要增加产出,也要减...
微博推荐算法简述
在介绍微博推荐算法之前,我们先聊一聊推荐系统和推荐算法。有这样一些问题:推荐系统适用哪些场景?用来解决什么问题、具有怎样的价值?效果如何衡量? 推荐系统诞生很早,但真正被大家所重视,缘起于以”facebook”为代表的社会化网络的兴起和以“淘宝“为代表的电商的繁荣,”选择“的时代已经来临,信息和物品的极大丰富,让用户如浩瀚宇宙中的小点,无所适从。推荐系统迎来爆发的机会,变得离用户更近: 快...
相关热词 c#如何定义数组列表 c#倒序读取txt文件 java代码生成c# c# tcp发送数据 c#解决时间格式带星期 c#类似hashmap c#设置istbox的值 c#获取多线程返回值 c# 包含数字 枚举 c# timespan
立即提问