加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – UTF-8和UTF-16之间是否存在巨大差异

发布时间:2020-12-15 02:51:42 所属栏目:Java 来源:网络整理
导读:我调用了一个webservice,它给了我一个具有UTF-8编码的响应xml.我在 java中使用getAllHeaders()方法检查了它. 现在,在我的java代码中,我接受了该响应,然后对其进行了一些处理.然后,将其传递给其他服务. 现在,我用google搜索了一下,发现默认情况下,Java中字符
我调用了一个webservice,它给了我一个具有UTF-8编码的响应xml.我在 java中使用getAllHeaders()方法检查了它.

现在,在我的java代码中,我接受了该响应,然后对其进行了一些处理.然后,将其传递给其他服务.

现在,我用google搜索了一下,发现默认情况下,Java中字符串的编码是UTF-16.

在我的响应xml中,其中一个元素有一个字符é.现在这搞砸了我对其他服务的后处理请求.

它没有发送é,而是发送了一些乱七八糟的东西.现在我想知道,这两种编码真的会有很大不同吗?如果我想知道什么将从UTF-8转换为UTF-16,那么我该怎么做呢?

谢谢

解决方法

UTF-8和UTF-16都是可变长度编码.但是,在UTF-8中,字符可能占用最少8位,而在UTF-16中,字符长度以16位开始.

主要UTF-8专业人士:

>基本ASCII字符,如数字,拉丁字符,否
重音等占用一个与US-ASCII相同的字节
表示.这样所有US-ASCII字符串都变为有效的UTF-8,
在许多情况下,它提供了良好的向后兼容性.
>没有空字节,允许使用以空字符结尾的字符串,这个
也引入了大量的向后兼容性.

主要UTF-8缺点:

>许多常见字符的长度不同,这会减慢索引速度
并严重计算字符串长度.

主要UTF-16专业人士:

>最合理的角色,如拉丁文,西里尔文,中文,日文
可以用2个字节表示.除非真正异国情调的人物
需要,这意味着UTF-16的16位子集可以用作a
固定长度编码,可加快索引速度.

主要UTF-16缺点:

> US-ASCII字符串中有很多空字节,这意味着没有
以null结尾的字符串和大量浪费的内存.

通常,UTF-16通常更适合内存中表示,而UTF-8非常适合文本文件和网络协议

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读