此文为应用中遇到字符串编码转换问题网上找资料解决问题记录笔记,工作中经常会遇到类似问题,在此记录备忘,后续再进行整理。
jquery serialize方法中文乱码及解决办法
http://blog.csdn.net/xiao2shiqi/article/details/8438019
jquery form表单.serialize()序列化后中文乱码问题原因及解决
原因:.serialize()自动调用了encodeURIComponent方法将数据编码了
解决方法:调用decodeURIComponent(XXX,true);将数据解码
例如:
var params = jQuery("#formId").serialize(); // http request parameters.
params = decodeURIComponent(params,true);
在进行编码
params = encodeURI(encodeURI(params));
后台
String paramsTrans = new String(params.getBytes("ISO-8859-1"),"UTF-8");
params = java.net.URLDecoder.decode(paramsTrans , "UTF-8");
问题解决。
----------------------------------------------------------------------------------------------------------------------------------
注意:页面端发出的数据作两次encodeURI,这个做的好处在于,不管浏览器用户在页面来设置编码,服务器所采用的编码来做一次URLencode转换成UTF-8.
encodeURL函数主要是来对URI来做转码,它默认是采用的UTF-8的编码.
具体说明2次encodeURI:
其中具体的原理分析如下,假设页面端输入的中文是一个“中”,按照下面步骤进行解码
1.第一次encodeURI,按照utf-8方式获取字节数组变成[-28,-72-83],对字节码数组进行遍历,把每个字节转化
成对应的16进制数,这样就变成了[E4,B8,AD],最后变成[%E4,%B8,%AD]
2.第二次encodeURI,把数组最后变成[%25E4,%25B8,%25AD]然后就把处理后的数据[%25E4,%25B8,%25AD]
发往服务器端,当应用服务器调用getParameter方法,getParameter方法会去向应用服务器请求参数
应用服务器最初获得的就是发送来的[%25E4,%25B8,%25AD],应用服务器会对这个数据进行URLdecode操作,
URldecode操作和encodeURL操作是相反的操作,处理结果就是[%E4,%B8,%AD],并把这个值返回
给getParameter方法
然后再在服务器端中调用相应的URL转码方法或者是函数 就可以把数据还原成最初页面发送过来的中文“中”了。
java字符串应用之字符串编码转换
http://blog.csdn.net/zhouyong80/article/details/1900100
无论是对程序的本地化还是国际化,都会涉及到字符编码的转换的问题。尤其在web应用中常常需要处理中文字符,这时就需要进行字符串的编码转换,将字符串编码转换为GBK或者GB2312。
一、关键技术点:
1、当前流行的字符编码格式有:US-ASCII、ISO-8859-1、UTF-8、UTF-16BE、UTF-16LE、UTF-16、GBK、GB2312等,其中GBK、GB2312是专门处理中文编码的。
2、String的getBytes方法用于按指定编码获取字符串的字节数组,参数指定了解码格式,如果没有指定解码格式,则按系统默认编码格式。
3、String的“String(bytes[] bs, String charset)”构造方法用于把字节数组按指定的格式组合成一个字符串对象
分享到:
相关推荐
根据提供的文件信息,本文将详细解析前后台字符集转码的相关知识点,包括字符集的基本概念、前后端如何处理字符集转码以及示例代码中的具体实现。 ### 字符集的基本概念 在计算机科学中,字符集(Character Set)...
3. 创建NCR字符串:将转换后的十六进制码点前加上`&#x`,并在末尾添加分号`;`。例如,`52294`转换为`利`,`75283`转换为`用`,`96401`转换为`陀`。 4. 替换原始字符串中的中文字符:将原始字符串...
### extjs前后台交互参数出现中文乱码问题的解决方法 #### 问题背景与原因分析 在使用MyEclipse开发工具进行Web应用开发时,尤其是采用ExtJS框架结合Ajax技术进行前后端数据交互的过程中,可能会遇到一个常见的...
通常,Java使用字节数组表示密钥,而JavaScript使用Base64编码的字符串,因此在前后端之间传递密钥时,需要进行适当的转换。 6. **安全实践**:虽然AES和MD5在很多场景下被广泛使用,但值得注意的是,MD5已经不被...
- 在事件处理方法中,你需要解析接收到的字符串,提取出条形码或二维码信息。通常,条形码数据会以一个特定的结束符(如回车符`'\n'`或制表符`'\t'`)结尾,因此可以通过查找这个结束符来确定数据的边界。 4. **多...
这段后台代码中,我们首先获取到图片的字节数组`imgbyte`,然后使用`BASE64Encoder`将其转换为Base64字符串`str64`。`ModelAndView`对象用于在前后端之间传递数据,我们设置了视图名称为`showimg`,并添加了一个名为...
在C++中,通常需要手动处理编码转换,可能需要用到第三方库如iconv等。 总之,Java和C++通过Socket通信时,要确保双方对字符编码的一致性,避免出现乱码现象。在设计系统时,最好能统一编码标准,如都使用UTF-8,以...
这段代码展示了如何使用FileReader API读取用户选择的图片,将其转换为DataURL,然后调用压缩函数(未在此处显示,需自行实现或引用外部库),并将压缩后的base64字符串发送到后台。 总结: 前端图片压缩base64是...
AES加密通过设置一个密钥,将明文字符串转化为密文,防止数据在传输过程中被轻易解读。 2. **字符串压缩**: 数据压缩可以减少传输的数据量,提高效率。Android中,可以使用Gzip或者Zlib库进行压缩。Gzip是一种...
3. **方法区中的常量引用的对象**:字符串常量池中的字符串等。 4. **本地方法栈中JNI(Native方法)引用的对象**:通过JNI接口引用的对象。 **1.2 不可达对象的回收** - **finalize()方法**:当对象不再可达时,...
在本例中,`data:"filepath="+checkValue`,`checkValue`是前端需要传递给后台的参数,这里将其转换为字符串并与URL拼接。 4. `dataType`:预期服务器返回的数据类型,设置为"json"表示期望得到JSON格式的响应。 5....
- 使用`Gson`库将`parentList`转换为JSON字符串,并输出到客户端。 #### 3. 递归构建多级菜单 ```java private void createTree(List<Tree> list, int pId) { for (int i = 0; i (); i++) { Map, Object> map = ...
如果是JSON格式,可以使用`org.json`库或其他库将Java对象转换为JSON字符串。 ```java String jsonString = "{\"status\":\"success\",\"message\":\"数据获取成功\"}"; response.getWriter().write(jsonString); `...
8. **请求参数对象**:`paramObj`包含了需要转换为字符串的特定值,例如`excelHead`定义了Excel表头的顺序,其他键值对如`printStatus0`,`printStatus1`等用于根据后端返回的数字状态映射为用户友好的文本。...
- **StringJoiner用于连接字符串,提供了一种更简洁的方式来构建复合字符串。** #### 十九、String类常用方法 - **length():** 返回字符串长度。 - **charAt(int index):** 返回指定索引处的字符。 - **concat...
这时,我们需要在后台再次进行编码转换,将已解码的ISO-8859-1编码字符串转换回UTF-8。 5. **页面编码设置**:页面编码设置也很关键。`<%@ page language="java" pageEncoding="UTF-8"%>`这行代码用于指定JSP页面的...
这个方法会对要发送的数据对象进行遍历,对每个属性进行编码,并将其拼接成适合URL查询字符串的格式,最后设置适当的`Content-Type`头,即`application/x-www-form-urlencoded;charset=utf-8`。 其次,在Java后端...
如何把一段逗号分割的字符串转换成一个数组? 可以使用`split()`方法,例如:`String[] arr = str.split(",");` ### 36. 数组有没有length()这个方法?String有没有length()这个方法? 数组没有`length()`方法,但...
这通常通过`FileReader API`来实现,读取选中的文件,将其转换为Base64编码的字符串,然后插入到DOM中。 3. **分页浏览**:使用`AJAX`获取服务器上的照片列表,实现分页功能。用户在切换页面时,前端仅需发送请求...