使用AELFRED进行XML程序设计
-- 汉化
  - 简介
 
  - 基本原理
 
  - 如何使用
 
  - 汉化
 
  - Applet
 
  - 杂项
 
Aelfred并不支持GB系列编码,因此我们需要自己进行汉化工作。汉化AELFRED可以通过以下几种方法: 
  -  如果仅仅将AELFRED应用于服务器端,则不需要进行程序方面的转换和重写,在xml文件中标明encoding="ISO8859-1"就可以了。
 
  - 如果AELFRED用于Applet,由于Applet使用的编码是UNICODE,而且AELFRED的程序惯例是JDK1.02通过,可以自己写一段GB到UNICODE的转换程序,在这段程序里处理GB编码的问题。这种办法的有点是兼容性好。
 
  - 在Applet中使用AELFRED的情况下,还可以使用Reader来进行自动的字符转换。但是这种风格是JDK1.1的风格,不过由于现在绝大多数支持java的浏览器都支持JDK1.1,这种方法也是可行的。
 
在这里,笔者仅仅简单地写了一个使用Java语言环境所提供的Reader的简单的GB读取方法。在这里使用Reader进行读取而不采用自己写一个GB到UNICODE的转换程序的原因为:
  - 使用reader的代码体积小。
 
  - 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;
  }