zoukankan      html  css  js  c++  java
  • Javadoc

    Javadoc是将Java程序中的文档注释导出,并转换为HTML格式,方便他人阅读程序,从而提高代码的可读性。

    在使用Javadoc过程中,遇到了一个问题。在文档注释中使用中文(/** 中国 */),会出现“错误:编码GBK的不可映射字符”,如下图所示

    那么这个问题是怎么来的呢?

      答:我们使用的JDK是国际版的,编译过程中,如果没有用 -encoding 指定我们Java程序的编码格式,则会使用操作系统默认的编码格式,然后JDK会把Java程序从默认的编码模式转换位Java内部默认的编码格式Unicode存放到内存中。

    那么为什么要用编码呢?

      答:这个是我在博客园看到的一篇文章,附上链接 http://www.cnblogs.com/yuan1164345228/p/6937958.html。计算机只认识 0和1,而人类繁衍至今产生了形色各异的字符。那么怎么在计算机上表示这些字符呢?就需要将现实生活中的字符通过翻译变为 0和1,所以就有了编码一说,假定 0000 0001b 表示为 ‘¥’,我们要在计算机上表示‘¥’符号,计算机用 0000 0001b来表示。

        计算机发展至今已出现许许多多的编码格式,如 ASCII、ISO-8859-1、GB2312、GBK、UTF-8、UTF-16 等,下面给大家简单介绍下。

          ASCII:总共有128个字符,用一个字节的低七位表示,0~31 是控制字符如换行回车删除等;32~126 是打印字符,可以通过键盘输入并且能够显示出来。在C语言中,表示字符的数据类型是 char,char占一个字节,ASCII码只使用了7位,也就是说还有 1 位没有使用,这就留下了扩展空间。

          ISO-8859-1(扩展ASCII编码):128 个字符显然是不够用的,于是 ISO 组织在 ASCII 码基础上又制定了一些列标准用来扩展 ASCII 编码,它们是 ISO-8859-1~ISO-8859-15,其中 ISO-8859-1 涵盖了大多数西欧语言字符,所有应用的最广泛。ISO-8859-1 仍然是单字节编码,它总共能表示 256 个字符。

          GB2312:它的全称是《信息交换用汉字编码字符集 基本集》,它是双字节编码,总的编码范围是 A1-F7,其中从 A1-A9 是符号区,总共包含 682 个符号,从 B0-F7 是汉字区,包含 6763 个汉字。它的全称是《信息交换用汉字编码字符集 基本集》,它是双字节编码,总的编码范围是 A1-F7,其中从 A1-A9 是符号区,总共包含 682 个符号,从 B0-F7 是汉字区,包含 6763 个汉字。

          GBK(扩展的GB2312):全称叫《汉字内码扩展规范》,是国家技术监督局为 windows95 所制定的新的汉字内码规范,它的出现是为了扩展 GB2312,加入更多的汉字,它的编码范围是 8140~FEFE(去掉 XX7F)总共有 23940 个码位,它能表示 21003 个汉字,它的编码是和 GB2312 兼容的,也就是说用 GB2312 编码的汉字可以用 GBK 来解码,并且不会有乱码。

          GB18030(兼容GB2312):全称是《信息交换用汉字编码字符集》,是我国的强制标准,它可能是单字节、双字节或者四字节编码,它的编码与 GB2312 编码兼容,这个虽然是国家标准,但是实际应用系统中使用的并不广泛。

          Unicode编码集(注意是编码

            UTF-16:具体定义了 Unicode 字符在计算机中存取方法。UTF-16 用两个字节来表示 Unicode 转化格式,这个是定长的表示方法,不论什么字符都可以用两个字节表示,两个字节是 16 个 bit,所以叫 UTF-16。UTF-16 表示字符非常方便,每两个字节表示一个字符,这个在字符串操作时就大大简化了操作,这也是 Java 以 UTF-16 作为内存的字符存储格式的一个很重要的原因。

            UTF-8:统一采用两个字节表示一个字符,虽然在表示上非常简单方便,但是也有其缺点,有很大一部分字符用一个字节就可以表示的现在要两个字节表示,存储空间放大了一倍,在现在的网络带宽还非常有限的今天,这样会增大网络传输的流量,而且也没必要。而 UTF-8 采用了一种变长技术,每个编码区域有不同的字码长度。不同类型的字符可以是由 1~6 个字节组成。

              UTF-8 有以下编码规则

                1、如果一个字节,最高位(第 8 位)为 0,表示这是一个 ASCII 字符(00 - 7F)。可见,所有 ASCII 编码已经是 UTF-8 了。

                2、如果一个字节,以 11 开头,连续的 1 的个数暗示这个字符的字节数,例如:110xxxxx 代表它是双字节 UTF-8 字符的首字节。

                3、如果一个字节,以 10 开始,表示它不是首字节,需要向前查找才能得到当前字符的首字节 

    解决方法

     在Windows命令行下编辑:javadoc -encoding UTF-8 程序名

    在eclipse中,参考http://blog.csdn.net/wqjsir/article/details/5691254

    Javadoc注释规范

    详情参考:http://blog.csdn.net/z437955114/article/details/50482372

  • 相关阅读:
    JavaScript 事件绑定:立即执行函数的闭包 vs let的块作用域
    JavaScript 中的组合继承 :ES5 与 ES6 中最近似的写法
    js 变量提升与函数提升
    js 函数
    清华大学孙茂松组:图神经网络必读论文列表
    idea里处理can not find declaration to go
    MySQL数据库里查询表注释、表字段注释信息
    MySQL循环游标的使用
    ELT和INTERVAL函数
    .jar文件执行命令
  • 原文地址:https://www.cnblogs.com/AI-Cobe/p/7857291.html
Copyright © 2011-2022 走看看