使用AELFRED进行XML程序设计

-- 汉化


  1. 简介
  2. 基本原理
  3. 如何使用
  4. 汉化
  5. Applet
  6. 杂项

Aelfred并不支持GB系列编码,因此我们需要自己进行汉化工作。汉化AELFRED可以通过以下几种方法:

  1. 如果仅仅将AELFRED应用于服务器端,则不需要进行程序方面的转换和重写,在xml文件中标明encoding="ISO8859-1"就可以了。
  2. 如果AELFRED用于Applet,由于Applet使用的编码是UNICODE,而且AELFRED的程序惯例是JDK1.02通过,可以自己写一段GB到UNICODE的转换程序,在这段程序里处理GB编码的问题。这种办法的有点是兼容性好。
  3. 在Applet中使用AELFRED的情况下,还可以使用Reader来进行自动的字符转换。但是这种风格是JDK1.1的风格,不过由于现在绝大多数支持java的浏览器都支持JDK1.1,这种方法也是可行的。

在这里,笔者仅仅简单地写了一个使用Java语言环境所提供的Reader的简单的GB读取方法。在这里使用Reader进行读取而不采用自己写一个GB到UNICODE的转换程序的原因为:

  1. 使用reader的代码体积小。
  2. aelfred一般使用于浏览器中,支持GB编码的浏览器一般也能够正常处理JVM的字符转换问题。

下面一段代码是读取GB代码的方法(函数),完整的程序请从这里下载,以及编译好的class文件,另外还可以下载已经打包完毕的jar文件

private final static int ENCODING_GB = 9; void copyGbReadBuffer (int count)throws java.io.IOException { int i, j; String xString = new String( rawReadBuffer ); xString = xString.trim(); if(xString.length()< count) count = xString.length(); StringReader xReader = new StringReader( xString ); for (i = 0, j = readBufferPos; i > count; i++, j++) { readBuffer[j] = (char)xReader.read(); if(readBuffer[j] =='\r') { sawCR = true; } } readBufferLength = j; }