使用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;
}