发信人: head()
整理人: hht(1999-03-11 11:09:10), 站内信件
|
From: 12:59 Subject: [中文Q&A]Java 字码问题To: [email protected]
From: [email protected] via BBS mail gateway Subject: [中文Q&A]Java 字码问题 Date: Tue Jun 9 12:59:44 1998 To: To
>From - Thu Jul 17 18:35:27 1997 Path: netnews.ntu.edu.tw!news.ck.tp.edu.tw!news.edu.tw!ctu-peer!news.nctu.edu.tw!news.nctu.edu.tw!news.ncu.edu.tw!News.csie.ncu.edu.tw!spring.edu.tw!news.secc.fju.edu.tw!UUserv.Net.tw!aidebbs.edu.tw!netnews2!news.csie.nctu.edu.tw!phoenix From: [email protected] (duke :>) Newsgroups: tw.bbs.comp.lang.java Subject: Java 字码问题 Date: 16 Jul 1997 09:13:22 GMT Organization: 交大资工凤凰城资讯站 Message-ID: <[email protected]> X-Filename: java/M.869044402.A NNTP-Posting-Host: serv.hinet.net Lines: 58
JDK 1.1 包含了处理许多种编码的机制 (Unicode, BIG5, ISO-8859-1, ...) 但也造成某些环境, 可以看到中文 (这里指 Big5)、有些环境则否。
大略测一下手边的软体:
Netscape Navigator 3.x(NT) - BIG5 Netscape Communicator 4.01(95/NT) - Unicode/BIG5 Microsoft Explorer 3.x - Unicode
JDK 1.0 bytecode 的文字资料是 BIG5, VJ++ 则是 Unicode (以前有人提出 )。事实上 JDK 1.0 不对文字资料作任何转换动作。所以, 在有中文情况下: JDK 1.0 产生的 bytecode 可供 Navigaotr 浏览, VJ++ 可供 Explorer浏览 。Communicator 则可同时浏览 JDK 1.0 及 VJ++ 产生的 bytecode。
到了 JDK 1.1 会针对执行环境处理---95/NT 中文版, 在预设情况会把 BIG5 文字转换成 Unicode。 Solaris 下, 换了几种 locale, 状况不太能预测。查 了文件, 编码方式可由 javac 决定:
javac -encoding Big5 t.java (把 t.java BIG5 中文转成 Unicode) javac -encoding 8859_1 t.java (把 t.java BIG5 中文保持原状, 不转)
ps. 1) 注意 Big5 大小写 2) 8859_1 不确定能否正常(大致没问题) 3) 我用 Mocha (Java Decompiler) 来确定编码
将 BIG5 转成 Unicode 比较符合趋势? :-) 不转的话, 是照顾许多使用者。 基本上, 对许多使用 JDK 在 Command Line 上努力的人来说:
1. 95/NT - 用新版 1.1, 就依预设状态转成 Unicode。 2. Solaris - 以 Telnet 作业, 如果转成 Unicode, 就看不到了。在 Console? 我离 Console 太远了, 没试过 ... Solaris 有支援 Uni- Code 吗??
当然, 可利用新的 package 来处理, 解决这些问题。有人写好的吗? :-))
--------------------------------------------------------------------- [附录] 用来测试的 t.java:
public class t { public static void main(String args[]) { System.err.println("测试"); } }
================================================================= javac -encoding Big5 t.java 用 Mocha 处理後, 看到 Unicode: System.err.println("\u6e2c\u8a66");
================================================================= javac -encoding 8859_1 t.java 用 Mocha 处理後, 还是 BIG5: System.err.println("\u00b4\u00fa\u00b8\u00d5");
---------------------------------------------------------------------
- The End
-- ☆ 来源:.广州网易BBS站 bbs.nease.net.[FROM: 202.101.127.250]
|
|