编码GBK的不可映射字符

问题描述及分析:

使用MyEclipse导出doc时,最终使用的还是JDKjavadoc命令。

Javadoc命令可以设置命令执行参数(参看文档后附录),其中-encoding <名称> 指定了源码文件的编码方式。由于JDK是国际版的(参考网络资料),所以默认使用的是系统编码。

 

这段代码可以查看系统的编码格式

public class TestFileEncoding {
 
    public static void main(String[] args) {
        System.out.println(System.getProperty("file.encoding"));
    }
 
}
 

输出结果

GBK

如果需要导出的源码文件的编码格式不是GBK,那么后台就会报“编码GBK的不可映射字符”。

 

解决方案: 

使用Export命令导出导出javadoc,添加执行参数




 

 

 

 

 

Javadoc命令的使用及参数说明
用法:javadoc [选项] [软件包名称] [源文件] [@file] 
-overview <文件> 读取 HTML 文件的概述文档 
-public 仅显示公共类和成员 
-protected 显示受保护/公共类和成员(默认) 
-package 显示软件包/受保护/公共类和成员 
-private 显示所有类和成员 
-help 显示命令行选项并退出 
-doclet <类> 通过替代 doclet 生成输出 
-docletpath <路径> 指定查找 doclet 类文件的位置 
-sourcepath <路径列表> 指定查找源文件的位置 
-classpath <路径列表> 指定查找用户类文件的位置 
-exclude <软件包列表> 指定要排除的软件包的列表 
-subpackages <子软件包列表> 指定要递归装入的子软件包 
-breakiterator 使用 BreakIterator 计算第 1 句 
-bootclasspath <路径列表> 覆盖引导类加载器所装入的 
类文件的位置 
-source <版本> 提供与指定版本的源兼容性 
-extdirs <目录列表> 覆盖安装的扩展目录的位置 
-verbose 输出有关 Javadoc 正在执行的操作的消息 
-locale <名称> 要使用的语言环境,例如 en_US 或 en_US_WIN 
-encoding <名称> 源文件编码名称 
-quiet 不显示状态消息 
-J<标志> 直接将 <标志> 传递给运行时系统 

通过标准 doclet 提供: 
-d <directory> 输出文件的目标目录 
-use 创建类和包用法页面 
-version 包含 @version 段 
-author 包含 @author 段 
-docfilessubdirs 递归复制文档文件子目录 
-splitindex 将索引分为每个字母对应一个文件 
-windowtitle <text> 文档的浏览器窗口标题 
-doctitle <html-code> 包含概述页面的标题 
-header <html-code> 包含每个页面的页眉文本 
-footer <html-code> 包含每个页面的页脚文本 
-top <html-code> 包含每个页面的顶部文本 
-bottom <html-code> 包含每个页面的底部文本 
-link <url> 创建指向位于 <url> 的 javadoc 输出 
-linkoffline <url> <url2> 利用位于 <url2> 的包列表链接至位于 
档 
-excludedocfilessubdir <name1>:..排除具有给定名称的所有文档文件子目 
-group <name> <p1>:<p2>..在概述页面中,将指定的包分组 
-nocomment 不生成描述和标记,只生成声明。 
-nodeprecated 不包含 @deprecated 信息 
-noqualifier <name1>:<name2>:...输出中不包括指定限定符的列表。 
-nosince 不包含 @since 信息 
-notimestamp 不包含隐藏时间戳 
-nodeprecatedlist 不生成已过时的列表 
-notree 不生成类分层结构 
-noindex 不生成索引 
-nohelp 不生成帮助链接 
-nonavbar 不生成导航栏 
-serialwarn 生成有关 @serial 标记的警告 
-tag <name>:<locations>:<header> 指定单个参数自定义标记 
-taglet 要注册的 Taglet 的全限定名称 
-tagletpath Taglet 的路径 
-charset <charset> 用于跨平台查看生成的文档的字符集。 
-helpfile <file> 包含帮助链接所链接到的文件 
-linksource 以 HTML 格式生成源文件 
-sourcetab <tab length> 指定源中每个制表符占据的空格数 
-keywords 使包、类和成员信息附带 HTML 元标记 
-stylesheetfile <path> 用于更改生成文档的样式的文件 
-docencoding <name> 输出编码名称
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当在使用GBK编码时遇到不可映射字符(例如某些特殊的符号或不常用的汉字),可以尝试以下解决方法: 1. 使用其他编码方式:可以尝试使用UTF-8编码或者其他支持更广泛字符集的编码方式来解决问题。UTF-8是目前最常用的编码方式之一,可以支持几乎所有的字符,包括所有的Unicode字符。 2. 特殊字符转义:如果遇到的是一些特殊字符,可以尝试使用其对应的转义字符来代替。例如,对于一些不可显示的控制字符,可以使用反斜杠加上对应的ASCII码来表示。 3. 使用Unicode编码:将GB2312或GBK编码的文本转换为Unicode编码,然后再进行处理。可以使用一些转换工具或者库来实现编码的转换。 4. 忽略不可映射字符:如果不可映射字符对于项目或应用来说并不重要,可以选择忽略这些字符。可以通过判断字符是否可映射来进行处理,将不可映射字符过滤或者替换为其他字符。 5. 自定义映射表:如果对于不可映射字符有特定要求,可以通过自定义映射表的方式来解决。可以将不可映射字符替换为其他合适的字符或者标记,以便后续处理或者显示。 总的来说,针对GBK编码不可映射字符问题,可以根据具体情况选择适合的解决方法。最好的方式是尽量使用支持更广泛字符集的编码方式,如UTF-8,以避免不可映射字符带来的问题。 ### 回答2: GBK编码是中国的国家标准编码,它包含了大量的汉字及其他字符。然而,有时候我们会遇到一些不可映射字符,即GBK编码中没有相应的字符表示。这对于使用GBK编码的系统来说可能会导致一些问题,例如无法正常显示或处理这些字符。 解决这个问题的方法有以下几种: 1. 转换编码:将GBK编码字符串转换成其他编码,例如UTF-8。UTF-8是一种更为通用的编码方式,它可以表示世界上几乎所有的字符。通过将不可映射字符转换成其他编码,可以避免显示和处理的问题。 2. 使用转义字符:如果无法进行编码转换,可以尝试使用转义字符不可映射字符替换成其他字符字符串。例如,使用 "\uXXXX" 的形式表示一个Unicode字符,其中 "XXXX" 是该字符的十六进制编码。这样,可以用Unicode字符替代不可映射字符。 3. 使用定制的字符集:如果需要处理特殊的字符,可以考虑使用自定义的字符集进行编码。这种方法需要确保在所有使用该字符集的系统之间达成一致,以避免出现不一致的问题。 4. 转换为图片或其他非文字形式:如果无法找到其他解决方法,可以将不可映射字符转换成图片或其他非文字形式进行展示或处理。这样可以绕过字符编码的限制,但同时也会导致一些额外的复杂性和成本。 综上所述,处理GBK编码中的不可映射字符可以通过转换编码、使用转义字符、使用定制字符集或转换为其他形式来解决。根据具体情况选择合适的解决方法,以确保能够正常显示和处理这些字符
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值