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

Java编码

阅读更多
什么是编码: 字符‘中’, 用unicode表示为:0x4e2d, 用gb2312表示为: 0xd6d0, 这就是编码, 将某种形式信息转化为其它形式.

解码: 把0x4e2d这样信息转化为:中

更具体的表达是, 在计算机世界中,用char ''表达出来的东西, 是已经编码好的数据:

char a = '中';
char b = 'h';
由此引申出来的char*, char[], String等, 都属于已经编码好的数据.
因此char表示已经编码好的数据, 即我们提到的字符, 这个是针对人类交流所用到的表示方式. 比如'中', 对于人而言, 是非常清晰的阅读的.而计算机是不认识字符的, 它只能读懂二进制表示的字节.

但对于机器而言, 这样的方式是不可解读的, 因此它需要把'中',存储起来, 存储的方式是按照字节存储, 遵循某种规则:
'中'  按照gb2312来存储:  0xd6d0
'中'  按照unicode来存储: 0xe42d
...

所以, 常常提到的字符, 字符串这类表达方式, 都是给人交流用的.

而字节, 字, 这类描述, 是描述PC的, 比如一个int有几个字节, 一个double有几个字节,这些,都是为了描述机器中定义基础数据的

可以看到, 如果是一个字符文本信息, 存入到文件中时, 必须知道它的编码格式, 否则文本无法正确读出。

如果是二进制[即只给计算机处理用, 不需要人理解]文件, 这没有这样的问题

下面是Java中一个比较经典的出错:



//char src = 0x0061; //字母a, 97的表示方法
char src = '中'; //char本身的默认编码为utf16或者unicode
System.out.println("原始字符:" + src);
byte high =(byte) (src>>8);
byte low = (byte)(src);
System.out.println("高字节:" + Integer.toHexString(high));
System.out.println("低字节:" + Integer.toHexString(low));
//从字节流变成字符, 需要解码, 因此这里只能用unicode或者utf16, gbk或者gb2312肯定出错
System.out.println(new String(new byte[]{(byte)high, (byte)low}, "unicode"));



上面这个信息要指出的是: java对字符的编码都是unicode的,

unicode和utf16的区别是什么?
分享到:
评论
2 楼 ostrichmyself 2010-06-12  
java 和 c关于char/byte的区别

java:
char 为unicode编码, 是2个byte


c:
没有byte这个基本类型,

byte一般表示0~255的字符, 即unsigned char

char而言是有符号的.

1 楼 ostrichmyself 2010-06-11  
看到字符, 想到编码, 联想文本
看到字节, 想到解码,联想二进制

编码的原因: 人们交流用到的文字, 无法再计算机中直接表示[计算机只认数字信息], 因此要把这些文字字符, 编程二进制数字信息, 方便存储和传输. 由于这个世界乱七八糟的组织非常多, 所以吧文字字符编译成二进制信息的方式也不同, 这些就是今天纷繁复杂的编码规则:utf8,gb2312,gbk,utf-16,unicode等.

解码原因: 表达文本信息的, 存储成了二进制, 人不可能看懂的, 所以借助机器帮我们按照原来的规则, 解码一下, 恢复成文字.

相关推荐

    阿里巴巴java编码规范

    阿里巴巴java编码规范 ,Java 并发编程培训(阿里巴巴) 《阿里巴巴Java开发手册》,首次公开阿里官方Java代码规范标准。这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大...

    华为JAVA编码规范.pdf

    华为JAVA编码规范.pdf 华为JAVA编码规范.pdf是华为公司编写的JAVA编程语言编码规范,旨在提供一个统一的编程风格和代码组织方式,以提高代码的可读性、维护性和可重用性。该规范涵盖了编程语言的基本结构、命名规则...

    腾讯java编码规范

    腾讯 Java 编码规范 腾讯 Java 编码规范是腾讯集团管理标准的一部分,旨在确保公司项目代码的易维护性和编码安全性。该规范涵盖了 Java 编码风格、文件组织、代码风格、注释、命名、声明、异常、习惯等方面。 一、...

    Java编码规范.docx

    Java 编码规范 Java 编码规范是指在 Java 语言中编写代码时需要遵守的一些约定和规则,以确保代码的可读性、可维护性和可扩展性。本文将对 Java 编码规范的主要内容进行详细讲解。 命名风格是 Java 编码规范的重要...

    阿里巴巴 Java 编码指南,Alibaba Java Coding Guidelines​,兼容 Idea 2023.3+

    《阿里巴巴 Java 编码指南》是业界广泛采用的编码规范,旨在提高代码质量和开发效率,尤其对于使用 IntelliJ IDEA 的开发者来说,此指南的兼容性更新至 2023.3+ 版本,确保了最新的开发环境支持。这份指南在 2024 年...

    Java编码规范.doc

    Java编码规范是软件开发中非常重要的一个环节,它旨在提高代码质量、可读性、可维护性和团队协作效率。这份文档,"Java编码规范.doc",由东软集团有限公司的商用软件事业部编写,包含了国内大型Java项目和国际知名...

    Java 编码标准(PDF)

    Java编码标准是软件开发中的一项重要规范,它旨在提高代码质量、可读性以及团队间的协作效率。这份PDF文档很可能是Oracle公司或者一些知名的Java社区制定的编程规范,旨在为Java开发者提供一套统一的编码指南。以下...

    java编码总结1

    【标题】:“Java编码总结1”主要涉及到Java编程语言中的编码问题,这在软件开发中是至关重要的。编码问题往往会导致程序出现难以预料的错误,尤其是处理多国语言或者特殊字符时。Java作为广泛使用的跨平台语言,其...

    百度java编码规范

    **百度Java编码规范** 在软件开发中,遵循一定的编码规范是非常重要的,它能提高代码的可读性,便于团队协作,降低维护成本。百度作为一家技术驱动的公司,也提出了其内部使用的Java编码规范,旨在确保代码的一致性...

    JAVA编码规范试题

    JAVA 编码规范试题 JAVA 编码规范试题是一套涵盖了 JAVA 编程规范的试题,旨在帮助开发者掌握 JAVA 编程的基本规范和best practice。该试题涵盖了 JAVA 编程规范的多个方面,包括变量命名、代码格式、异常处理、...

    js解码 、java编码

    本文将深入探讨“js解码”和“java编码”这两个主题,并结合标签“源码”和“工具”,讨论如何在实际项目中应用它们。 首先,我们来看JavaScript中的解码。JavaScript是一种在客户端和服务器端都能运行的脚本语言,...

    公司使用的java编码规范

    Java 编码规范是开发团队遵循的一套标准,旨在提高代码质量、可读性和可维护性。这份规范涵盖了多个方面,包括文件命名、命名规范、Java 文件样式、代码编写格式以及编程技巧和性能优化等。 1. **前言** - 简介:...

    Neusoft公司Java编码规范.rar

    Java编码规范(Java Coding Standard) oiNSFT-BS-OT0105 V3.0 2005-5-11 东软集团有限公司 商用软件事业部 版权所有 中国 沈阳浑南高新技术产业开发区 东软软件园

    JAVA编码规范培训

    JAVA编码规范培训

    java编码规范(华为)

    "java编码规范(华为)" Java编码规范是华为公司为Java语言编程提供的规范性文档,旨在提高编程的规范化和专业化。本规范涵盖了Java语言编程的各个方面,包括排版、注释、命名、编码和JTEST规则和建议。 1. 范围 ...

    java编码规范,非常详细

    java编码规范,非常详细 每个switch-case语句都有最后一个default以确保处理了全集。switch中,每一条case分支必须使用break语句结束

Global site tag (gtag.js) - Google Analytics