`
yiminghe
  • 浏览: 1460103 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

前后端编码传递

    博客分类:
  • java
阅读更多

背景:

 

关于编码是 BS 的开发是个大问题,包括:


1.jsp文件 编码问题

2.网络传输编码问题


今天帮后端点忙,顺便尝试一个新的解决思路:Unicode escape sequence


即 unicode 转义字符,在 java (参考1参考2 ) 以及 javascript(参考 ecmascript-262-5th 6 sourcetext 以及 8.4 the string type) 中都有对应的解析机制,这样我们只需在网络中传输ascii字符即可。

 

传输:


client -> server


javascript 编码:

 

function padding4(c) {
while (c.length < 4) {
        c = "0" + c;
    }
    return c;
}

function encode(str) {
    return str.replace(/./g, function (t) {
        return "\\u" + padding4(t.charCodeAt(0).toString(16));
    })
}

 

java 解码:

 

static String reverse(String c) {
    Pattern pattern = Pattern.compile("\\\\u([0-9a-f]{4,4})", Pattern.CASE_INSENSITIVE);

    StringBuffer sb = new StringBuffer();
    Matcher m = pattern.matcher(c);
    while (m.find()) {
        String n = m.group(1);
        char ok = (char) Integer.parseInt(n, 16);
        m.appendReplacement(sb, ok + "");
    }
    m.appendTail(sb);
    return sb.toString();
}

 

server -> client


java 编码:

 

static String js(char my) {
    String str = Integer.toHexString((int) my.charAt(0));
    while (str.length() < 4) {
        str = "0" + str;
    }
    return "\\\\u" + str;
}

 

javascript 解码:

 

function decode(str) {
    return str.replace(/\\u([0-9a-f]{4,4})/ig, function (t,m1) {
        return String.fromCharCode(parseInt(m1,16));
    })
}

 

甚至若是具体是通过 jsonp , ajax 来获取,server可直接生成 "\uxxxx",解码即交给 javascript 引擎即可。

 

缺点:


优点即是和服务器编码配置无关,缺点也是很明显的:


1。对前后端不透明

2。编码不够compact ,当然不如直接编码二进制传递了。

 

 

分享到:
评论

相关推荐

    Base64编码和解码的应用(前后端程序)

    以上就是关于Base64编码和解码在前后端程序中的应用。前端使用Base64编码图片和文本,后端通过Servlet接口接收并解码,整个流程通过Ajax实现无刷新通信。这样的机制使得二进制数据可以在网络上高效、安全地传输。

    java前后端通讯AES加密及解密样例

    本文将深入探讨在Java环境下,特别是在前后端通信中如何使用AES(Advanced Encryption Standard)加密算法进行数据的安全传输。我们将基于Spring Boot框架来构建一个实际示例,演示AES的加密与解密过程。 AES,全称...

    uniapp 前后端AES加密解密.rar

    本压缩包"uniapp 前后端AES加密解密.rar"正是为了解决这一问题,它包含了在uniapp环境下实现前后端AES加密解密的方法。AES(Advanced Encryption Standard),即高级加密标准,是一种广泛使用的对称加密算法,具有...

    spring boot开发前后端注意事项

    首先,我们来讨论前后端交互中涉及的URL编码问题。在Web开发中,为了确保URL的正确性和安全性,我们需要对URL中的参数进行编码。JavaScript提供了多个函数来对URL中的参数进行编码:escape()、encodeURI()和...

    SpringBoot前后端传值.docx

    ### Spring Boot 前后端传值知识点详解 #### 一、@RequestParam 注解 - **定义**:`@RequestParam` 注解主要用于处理 Content-Type 为 `application/x-www-form-urlencoded` 编码的内容,适用于 GET 或 POST 请求...

    解决angularjs前后端分离调用接口传递中文时中文乱码的问题

    通过上述方法,前后端对传递的中文参数进行相应的编码和解码操作,可以有效解决在前后端分离开发过程中中文乱码的问题。前后端开发者在实现接口调用时需要注意字符编码的一致性,确保数据的正确传输和处理。 值得...

    B2C的电商网站,基于SpringBoot微服务架构,采用前后端分离的方式开发.docx

    综上所述,这个B2C电商网站的开发综合运用了多种技术和工具,构建了一个高效、可扩展的微服务架构,实现了前后端分离,以及各个组件之间的良好协同。通过这样的设计,系统能够更好地应对高并发场景,提供稳定、安全...

    MPEG4视频编码 divx(编码)

    3. **数据处理**:通过滤镜图传递每一帧视频数据到编码器。使用运动估计和补偿来预测帧,然后应用熵编码来进一步压缩。 4. **编码与写入**:编码器处理每一帧后,将编码结果写入输出文件。对于I帧,由于不依赖于...

    基于 SpringBoot、Spring Security、JWT 的前后端分离权限管理系统.zip

    2. JSON交互:数据以JSON格式在前后端间传递,易于序列化和解析。 3. 前端路由:前端负责页面跳转,提高用户体验,如使用React Router或Vue Router。 4. CORS:跨域资源共享,允许前端和不同源的后端通信。 【Java...

    SpringBoot+Vue 前后端分离的RBAC权限管理系统.zip

    在现代企业级应用开发中,前后端分离已经成为了一种主流架构模式,而SpringBoot与Vue.js的结合则为这种模式提供了强大的技术支持。本系统基于SpringBoot后端框架和Vue.js前端框架,构建了一个RBAC(Role-Based ...

    基于springboot + vue前后端分离的小型电商系统.zip

    本项目是一个基于SpringBoot和Vue.js实现的前后端分离小型电商系统,旨在为用户提供一个功能完善的在线购物平台。SpringBoot是Java领域的一款轻量级框架,它简化了新Spring应用的初始搭建以及开发过程,而Vue.js则是...

    Crypto-js前后端对称加密

    本文将详细探讨“Crypto-js前后端对称加密”这一主题,以及如何利用它来增强数据的安全性。Crypto-js是一个流行的JavaScript库,用于执行各种加密算法,而PHP则常作为后端开发语言用于处理加密解密任务。 对称加密...

    《基于Android的智慧体育平台家长模块设计与实现》,采用了前后端分离的模式,前端使用了….zip

    该项目采用了前后端分离的设计模式,这是当前软件开发中的主流趋势,尤其在移动端应用开发中。 一、前后端分离原理 前后端分离是一种架构模式,它将应用程序分为两个主要部分:前端(客户端)和后端(服务器端)。...

    教师业务档案管理系统(前后端).zip

    《教师业务档案管理系统(前后端)》是一款专为教育领域设计的管理软件,它整合了前端用户界面与后端服务器处理逻辑,旨在高效地管理教师的业务档案。本系统采用Java编程语言进行开发,体现了Java在构建大型分布式...

    ajax传递中文参数乱码解决办法

    ### AJAX传递中文参数乱码解决办法 在Web开发过程中,数据传输是不...同时,保持前后端以及数据库字符集的一致性也是很重要的。掌握了这些技巧后,开发者们就可以更加高效地处理多语言环境下Web应用的数据交互问题了。

    AES前后端加解密方法

    在前后端加解密中,关键问题是如何安全地管理和传递密钥。一种常见方法是使用HTTPS协议进行加密通信,保证密钥在传输过程中的安全性。另一种方法是使用公钥/私钥对,前端用公钥加密AES密钥,后端用私钥解密,这样...

    uni-app 前后端实战课 - 《悦读》(中).zip

    《悦读》是一款基于uni-app开发的前后端实战应用,旨在教授如何利用uni-app框架构建一个完整的小程序项目。uni-app是一个多端开发框架,它允许开发者使用一套代码实现跨平台应用开发,覆盖H5、微信小程序、支付宝小...

    解决JS传递中文乱码问题

    在Web开发过程中,我们经常会遇到中文字符编码的问题,尤其是在前后端数据交互时,中文字符的乱码问题更是让人头疼。本文将深入探讨如何解决JavaScript(简称JS)在传递中文字符时出现的乱码问题,并提供具体的解决...

    Javascript传递参数到action类,多个字符传递

    综上所述,通过分析给定的代码片段和其描述,我们不仅了解了JavaScript如何向Action类传递多个参数的具体实现,还深入探讨了URL编码、前后端通信协议、以及安全性考虑等多个扩展知识点,这对于我们构建健壮、安全、...

    基于Spring Boot+Spring Security+JWT+Vue前后端分离的旺旺小小酥  ( 一口一口又香.zip

    它包含三个部分:Header、Payload和Signature,所有信息都是经过编码的,可以安全地在网络中传递。在这个项目中,JWT用于生成和验证用户身份的令牌,使得每次请求都能验证用户身份,而无需在每个请求中发送登录凭据...

Global site tag (gtag.js) - Google Analytics