编码类型 ASCII URLcode编码 Unicode编码 utf编码理解

news2024/12/23 10:13:27

编码类型 ASCII URLcode编码 Unicode编码 utf编码理解

bin是二进制

oct是八进制

hex是16进制

Ord()检测ASCII码,python3也可查中文

  • HTML实体编码能被html页面解析,使用ord()对单个字符查看转换后结果,字母就是ASCII码加&# ;或者&#x

<p>hello</p>

<!-- 等同于 -->

  1. 十进制

<p>&#104;&#101;&#108;&#108;&#111;</p>

<!-- 等同于 -->

   2.  十六进制

<p>&#x68;&#x65;&#x6c;&#x6c;&#x6f;</p>

Cyberchef---实体编码转换工具

&lt;script&gt;   虽然前端页面可以识别这种编码但是不会执行语句功能

标签本身不能html实体编码

  • 用的比较多的
  • <&lt;
  • >&gt;
  • 空格:&nbsp;

使用include(将某个需要资源引入)

  • URLcode编码----某一个字段ASCII码转16进制+%结束

单引号   闭合  程序 成对出现

注释:

-- 空格但是urlcode转换时将空格转换成了+,所以看到就是--+

#(%23)代表注释的意思

%(%25)

30开头状态码代表重定向

  • utf8编码---一般一个3个字节编码,也有四个字节(表情)---国外Unicode码表可以查

转换时先转换成二进制根据范围从后向前取6位依次填入上面规则就行

创建mysql时默认utf83字节创建,utfmb8是4字节

<img src="" alt="" onerror="">   # 没有图片触发onerror事件

 

js规范不能编码符号,变成变量就可以了,用location=JavaScript:将右边变成变量就行

在a标签中,JavaScript协议:冒号是协议一部分不能被urlcode编码,可以被html实体编码

官方下载文件给你一个md5原因:

因为md5值是防止篡改,每次更改文件md5是会改变的

实现前端向后端数据提交

Php

nodejs(express)

 python(flask)

Java(servlet)

  • Php(先创建login.html和login.php文件,然后直接调试运行就行,会将结果打印在前端页面)

 login.html

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=<device-width>, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

   <form action="./login.php" method="post">

   <label for="">用户名:</label> <input type="text" name="username" id=""><br>

    <label for="">密码:</label><input type="password" name="password" id="">

    <input type="submit" value="submit">

   </form>

</body>

</html>

 

 login.php

<?php

    $username = $_POST["username"];

    $password = $_POST["password"];

    echo $username.'++++++'.$password;

?>

 

  • Nodejs(先将需要的依赖包下载到自己的文件夹中,然后再创建js文件,如果vscode没有提示相应库,cmd去对应目录(此处是创建js文件目录)命令:下载npm install 对应库,然后编写对应js代码,和web前端代码,cmd切换到创建js路径下使用node js文件名即可,在浏览器实现提交前端数据到后端,输入form表单中对应action即可,要想显示不能关闭cmd提示框(可以理解为关闭即是没有启动服务器。))

查看端看监听情况:netstat -ano | findstr 端口号

  xz  -d 解压文件名

<<package.json>>

 

js代码

const express = require('express');

const bodyParser = require('body-parser');

const app = express();

const port = 3000;

//使用bodyparse中间件解析http请求

app.use(bodyParser.urlencoded({extended: true}));

//处理post数据,此处/login是form表单的action

app.post('/login',(req,res) => {

    const {username,password} = req.body;

    console.log('Username:',username);

    console.log('Password:',password);

// 给前端返回数据

    res.send("login success");

});

// 监听对应端口

app.listen(port, () =>{

    console.log(`server is running on http://localhost:${port}`);

});

 

web代码

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=<device-width>, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

   <form action="http://localhost:3001/login" method="post">

   <label for="">username</label> <input type="text" name="username" id=""><br>

    <label for="">password</label><input type="password" name="password" id="">

    <input type="submit" value="submit">

   </form>

</body>

</html>

 

  • Python(现在PythonCharm安装Flask 控制台安装:pip install Flask,编写flask代码,然后运行,浏览器查看打印,再在phpstudy创建相应前端页面,注意端口,然后浏览器运行,就可以在后端看到前端传过来数据)

Flask.py

fromflaskimportFlask,request

app=Flask(__name__)

#装饰器(当捕获到login这个路由时直接执行下面login函数)

@app.route("/login",methods=['get','post'])

deflogin():

username=request.form.get('username')

password=request.form.get('password')

print('Username:',username)

print('Password:',password)

return'loginsuccessful'

if__name__=='__main__':

app.run(debug=True)

 

form表单

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=<device-width>, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

   <form action="http://localhost:5000/login" method="post">

   <label for="">username</label> <input type="text" name="username" id=""><br>

    <label for="">password</label><input type="password" name="password" id="">

    <input type="submit" value="submit">

   </form>

</body>

</html>

 

  • java(先创建maven项目,引入相应的依赖,编写相应类,在创建前端页面)

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

@WebServlet("/login") // 定义Servlet映射路径

public class LoginServlet extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // 获取表单数据

        String username = request.getParameter("username");

        String password = request.getParameter("password");

        System.out.println("Username: " + username);

        System.out.println("Password: " + password);

        // 可以在这里做更多的操作,比如验证用户名和密码等

        // 返回响应给客户端

        response.setContentType("text/html;charset=UTF-8");

        response.getWriter().println("Login successful!");

    }

}

前端代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<!DOCTYPE html>

<html>

<head>

  <title>Login Form</title>

</head>

<body>

  <h1>Login Form</h1>

  <form action="/login" method="post">

    <label for="username">Username:</label>

    <input type="text" id="username" name="username" required><br>

    <label for="password">Password:</label>

    <input type="password" id="password" name="password" required><br>

    <input type="submit" value="Login">

  </form>

</body>

</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/787015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

B2B2C开源多语言多商户跨境外贸网站部署开发

随着全球化的发展&#xff0c;跨境外贸成为了许多企业拓展业务的重要方向。搭建一个B2B2C开源多语言多商户跨境外贸网站&#xff0c;将有助于实现企业的全球化经营。那么&#xff0c;如何搭建一个B2B2C跨境外贸网站呢&#xff1f; 一、选择合适的开源平台 在搭建一个B2B2C跨境…

【设计模式】单例设计模式详解(包含并发、JVM)

文章目录 1、背景2、单例模式3、代码实现1、第一种实现&#xff08;饿汉式&#xff09;为什么属性都是static的&#xff1f;2、第二种实现&#xff08;懒汉式&#xff0c;线程不安全&#xff09;3、第三种实现&#xff08;懒汉式&#xff0c;线程安全&#xff09;4、第四种实现…

用i18next使你的应用国际化-Vue

ref: https://www.i18next.com/ 在vue项目中安装相关依赖&#xff1a; i18nexti18next-vuei18next-browser-languagedetector&#xff0c;用于检测用户语言 npm install i18next i18next-vue i18next-browser-languagedetector创建i18n.js文件&#xff1a; import i18next f…

FUNBOX_SCRIPTKIDDIE靶机详解

FUNBOX_SCRIPTKIDDIE靶机复盘 这个靶场给了太多的干扰因素&#xff0c;当你打完后反过来再看是非常简单的一个靶场&#xff0c;但是你打的过程中却会觉得非常难&#xff0c;干扰因素实在天多了。 题目中给了说加一条hosts&#xff0c;实际没用上。 对IP进行一个单独扫描后发现…

【设计模式——学习笔记】23种设计模式——建造者模式Builder(原理讲解+应用场景介绍+案例介绍+Java代码实现)

介绍 建造者模式又叫生成器模式&#xff0c;是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别)&#xff0c;使这个抽象过程的不同实现方法可以构造出不同属性的对象建造者模式是一步一步创建一个复杂的对象&#xff0c;它允许用户只通过指定复杂对象的类型和…

【MATLAB第60期】基于MATLAB的ARMAX具有外生回归因子的移动平均自回归模型

【MATLAB第60期】源码分享 | 基于MATLAB的ARMAX具有外生回归因子的移动平均自回归模型 一、简要介绍 ARMAX模型相比ARMA考虑了影响因素 &#xff0c;即可以实现基于时间序列数据的回归预测。目前&#xff0c;ARMAX预测未来功能存在困难&#xff0c;本篇文章不予介绍。大致思路…

Windows环境开发常用指令

今日一语&#xff1a;熟能生巧&#xff0c;只有多做才不容易忘记&#xff0c;只有多想才会发生改变 MySQL redis可手动进入windows服务管理进行检查&#xff0c;检查运行状态是否正常&#xff0c;否则需要手动启动 Redis 进入redis解压的文件地址&#xff0c;启动CMD窗口&a…

车辆驾驶自动化分级

车辆驾驶自动化分级 无自动化驾驶 由人类驾驶员全权操作车辆&#xff0c;车辆在行驶中可以得到预警和保护系统的辅助作用 驾驶辅助 在系统作用范围内&#xff0c;通过系统对转向、制动、驱动等系统中的一项进行短时间连续控制&#xff0c;其他的驾驶动作都由人类驾驶员进行…

Android NDK工具使用

快速定位到NDK安装目录 打开你的 .bash_profile vim &#xff5e;/.bash_profile 设置ndk的环境变量 ANDROID_HOME"/Users/xxxx/Library/Android/sdk" export NDK${PATH}:${ANDROID_HOME}/ndk/21.3.6528147 //这个就是你的快捷指令 alias ndkalias ndk${ANDROID_…

7.Docker-compose

文章目录 Docker-compose概念Docker-compose部署YAML文件格式和编写注意事项注意数据结构对象映射序列属组布尔值序列的映射映射的映射JSON格式文本换行锚点和引用 Docker compose配置常用字段docker compose常用命令Docker Compose 文件结构docker compose部署apachedocker co…

常见的正则表达式

目录 问题现象&#xff1a; 问题分析&#xff1a; 解决方法&#xff1a; 拓展&#xff1a; 1、手机号或座机&#xff1a; 2、邮箱&#xff1a; 3、中文&#xff1a; 4、数字&#xff1a; 5、英文&#xff1a; 6、组合&#xff1a; 问题现象&#xff1a; 今天在项目中&…

使用预训练的2D扩散模型改进3D成像

扩散模型已经成为一种新的生成高质量样本的生成模型&#xff0c;也被作为有效的逆问题求解器。然而&#xff0c;由于生成过程仍然处于相同的高维&#xff08;即与数据维相同&#xff09;空间中&#xff0c;极高的内存和计算成本导致模型尚未扩展到3D逆问题。在本文中&#xff0…

【用Vscode实现简单的python爬虫】从安装到配置环境变量到简单爬虫以及python中pip和request,bs4安装

第一步&#xff1a;安装python包 可以默认&#xff0c;也可以选择自己想要安装的路径 第二步&#xff1a;配置python环境变量&#xff0c;找到我的电脑->属性->高级 然后将刚刚安装的路径配置到path路径下&#xff1a; 然后cmd 运行 输入python命令&#xff0c;如果出现…

mongodb本地连接失败解决方案

启动项目时&#xff0c;本地连接mongodb失败 这个是本地服务没有启动 其实我也挺奇怪&#xff0c;我明明设置的是自动启动 *解决方案一 1.我的电脑-> 管理 2. 服务和应用管理-> 服务 3. 找到mongoDB Server 右键启动 *解决方案二 1. 找到mongodb安装目录&#xff0c…

使用 Logstash 及 enrich processor 实现数据丰富自动化

在我之前的文章&#xff1a; Elasticsearch&#xff1a;enrich processor &#xff08;7.5发行版新功能&#xff09; Elasticsearch&#xff1a;使用 Elasticsearch ingest pipeline 丰富数据 通过上面的两篇文章的介绍&#xff0c;我们应该充分掌握了如何使用 enrich proce…

【DDD】业务领域定义

文章目录 前言一、什么是业务子领域&#xff1f;二、子领域的类型有哪些&#xff1f;2.1、核心子领域2.2、通用子领域2.3、支撑子领域 三、子领域差异对比3.1、竞争优势比较3.2、复杂性比较3.3、易变性比较3.4、实时策略比较 总结 前言 一个业务领域是一个公司的主要活动领域的…

python:基于GeoPandas和GeoViews库将GEDI激光高程数据映射到交互式地图

作者:CSDN @ _养乐多_ 本文将介绍 GEDI(Global Ecosystem Dynamics Investigation)激光雷达数据某数据点波形数据提取,并绘制图表,添加其他图表元素并使图表具有交互性。 在本文中,我们将探索如何打开、读取和处理GEDI数据,并利用地理信息处理库GeoPandas和地理空间数…

Postman和Jmeter做接口测试的区别

1. 用例组织方式 Jmeter的组织方式相对比较扁平&#xff0c;它首先没有WorkSpace的概念&#xff0c;直接是TestPlan&#xff0c;TestPlan下创建的Threads Group就相当于TestCase&#xff0c;并没有TestSuite的层级。 Postman功能上更简单&#xff0c;组织方式也更轻量级&#…

【枚举】CF978 D

Problem - D - Codeforces 题意&#xff1a; 思路&#xff1a; 所谓枚举&#xff0c;就是要利用隐含条件找出不明显的小数据&#xff0c;即状态数很少 这道题中&#xff0c;因为是等差数列&#xff0c;且每个数只能被1或-1一次 确定了前两个数和公差之后&#xff0c;数列就…

sqlite触发器1

SQLite 的触发器&#xff08;Trigger&#xff09;可以指定在特定的数据库表发生 DELETE、INSERT 或 UPDATE 时触发&#xff0c;或在一个或多个指定表的列发生更新时触发。 SQLite 只支持 FOR EACH ROW 触发器&#xff08;Trigger&#xff09;&#xff0c;没有 FOR EACH STATEM…