背景:
关于编码是 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
,当然不如直接编码二进制传递了。
分享到:
相关推荐
毕业设计,基于SpringBoot+Vue+MySql开发的前后端分离的游戏交易系统,内含完整源代码,数据库脚本,视频教程 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档...
毕业设计,基于SpringBoot+Vue+MySql开发的前后端分离的医疗挂号管理系统,内含完整源代码,数据库脚本,开题报告,任务书,视频教程 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让...
毕业设计,基于SpringBoot+Vue+MySql开发的前后端分离的疾病防控综合系统,内含完整源代码,数据库脚本,视频教程 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且...
毕业设计,基于SpringBoot+Vue+MySql开发的前后端分离的机动车号牌管理系统,含完整源代码,数据库脚本,开题报告,视频教程 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速...
毕业设计,基于SpringBoot+Vue+MySql开发的前后端分离的周边游酒店客服预订平台,含完整源码,数据库脚本,视频教程 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且...
毕业设计,基于SpringBoot+Vue+MySql开发的前后端分离的毕业设计系统,含完整源码,数据库脚本,开题报告,论文答辩,视频教程 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速...
毕业设计,基于SpringBoot+Vue+MySql开发的前后端分离的流浪动物管理系统,内含完整源代码,数据库脚本,开题报告,任务书,视频教程 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让...
毕业设计,基于SpringBoot+Vue+MySql开发的前后端分离的纺织品企业财务管理系统,含完整源码,数据库脚本,视频教程 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且...
在非英文字符集的页面上,如果使用Ajax方式进行数据交互的话,就必须要注意保证前后端数据的统一编码,否则,很容易就出现乱码! 在后端是ASP程序的情况下,保持前端Javascript和Asp之间传值的统一编码可以使用以下...
一、背景前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础。SpringBoot使编码配置部署都变得简单,越来越多的互联网公司已经选择SpringBoot作为微服务的入门级微框架。Mybatis-Plus是一个...
3、支持通过数据表中的组合主键传递参数 ★ 4、支持设置允许提交内容的长度、类型(数字、日期、汉字、空值等)的限制条件 ★ 5、支持对用户输入内容进行服务器端与客户端JS双重验证 ★ 6、支持自动生成多组...
1、支持Microsoft SQL Server及Microsoft Access数据库 2、支持从数据表、视图(Access为查询)中读取数据字段 3、支持通过数据表中的组合主键传递参数 ★ 4、支持设置允许提交内容的长度、...
客户端游标与服务器端游标的区别? 83.动态游标与静态游标的区别? 84.dotnet由哪几个基本框架组成? 85.Oracle中SGA是什么? 86.web servers是什么? 87.UNIX中QT是什么意思? 88.在软件开发生命周期中的哪个阶段...
SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。 对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器...
SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。 对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上...
iSee视频监控 v5.2 视频监控软件使用说明书 ...在使用本监控卡之前,请详细阅读本说明书所涉及的相关事项,熟悉 硬件、软件各部分的功能后,方能使用,以确保该系统为您发挥最佳功能。...
/\s+java\s+/ //匹配字符串"java" ,并且该串前后可以有一个或多个空格. /[^"] * / //匹配零个或多个非引号字符. 正则表达式的复制字符 字符 含义 ________________________________________________________...