[Charset]UTF-8, UTF-16, UTF-16LE, UTF-16BE的区别

本文讲述了在HTTP请求过程中,UTF-8、UTF-16LE和UTF-16BE编码的使用与问题。讨论了浏览器、Servlet服务器和应用服务器之间的编码转换,强调了HttpServletRequest.setCharacterEncoding()仅影响POST请求的编码,并探讨了不同服务器(如Weblogic、Tomcat和Jboss)中ContextPath的配置。
摘要由CSDN通过智能技术生成

今天遇到的麻烦事 ,好久没有使用servelt类了,今天偶感,就使用了,在报错之后在jsp中设置的编码形式是:<%@ page language="java" import="java.util.*" pageEncoding="GBK" contentType="text/html; charset=GBK"%> <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />

在servlet中设置的是:response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");

结果后台报的错误还是:xml的格式为utf-16ln , 不能转换为utf-8

我就纳闷了,我有没有使用xml格式的数据,而且每个页面到使用编码统一,没办法,就是不通过,最后把编码都去掉了,呵呵,查到数据了,汗啊。

然后,我有把每个页面的编码重新统一了,狂汗,又查到数据了。同时也查看了一些编码,如下:

charset里的问题, 一般我们都用unicode来作为统一编码, 但unicode也有多种表现形式 

首先, 我们说的unicode, 其实就是utf-16, 但最通用的却是utf-8, 
原因: 我猜大概是英文占的比例比较大, 这样utf-8的存储优势比较明显, 因为utf-16是固定16位的(双字节), 而utf-8则是看情况而定, 即可变长度, 常规的128个ASCII只需要8位(单字节), 而汉字需要24位 

UTF-16, UTF-16LE, UTF-16BE, 及其区别BOM 
同样都是unicode, 为什么要搞3种这么麻烦? 
先说UTF-16BE (big endian), 比较好理解的, 俗称大头 
比如说char 'a', ascii为 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值