⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gbunicode.java

📁 ecside jsp前途分页的标签 实现ajax 增删改查等
💻 JAVA
字号:
package demo.common;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Hashtable;

public class GBUnicode {
	byte high[] = new byte[6763], low[] = new byte[6763];

	char unichar[] = new char[6763];

	Hashtable UniGB;

	public GBUnicode(String table_file) throws IOException {
		BufferedInputStream tables = new BufferedInputStream(
				new FileInputStream(table_file));
		// DataInputStream tablesD=new DataInputStream(new
		// FileInputStream(table_file));

		int i, n = 0;
		byte b, bl, bh, num[] = new byte[20];

		UniGB = new Hashtable(7000, 1);
		while (n < 6763) {
			do {
				bh = (byte) tables.read();
			} while ((char) bh <= ' '); // find first non-blank char

			bl = (byte) tables.read();
			high[n] = bh;
			low[n] = bl;
			do {
				b = (byte) tables.read();
			} while (b != (byte) ':'); // find ':'

			do {
				b = (byte) tables.read();
			} while ((char) b <= ' '); // find next non-blank char to reaas
										// number

			i = 0;
			while ((char) b >= '0' && (char) b <= '9') {
				num[i++] = b;
				b = (byte) tables.read();
			}
			unichar[n] = (char) Integer.parseInt(new String(num, 0, 0, i));

			if (UniGB.get(new Character(unichar[n])) != null)
				System.out.println("Duplicated : " + unichar[n]);
			UniGB.put(new Character(unichar[n]), new Integer(n));
			n = n + 1;
		}
		tables.close();
	}

	private int getGBindex(byte high, byte low) {
		int i, j;
		i = high - (byte) 0xb0;
		j = low - (byte) 0xa1;
		if (i < 39) {
			// L1 Chinese
			if (j < 0 || j > 94)
				return -1;
			return (i * 94 + j);
		} else if (i == 39) {
			// one of the last 89 L1 Chinese
			if (j < 0 || j > 89)
				return -1;
			return (i * 94 + j);
		} else {
			// L2 Chinese
			if (j < 0 || j > 94)
				return -1;
			return (i * 94 + j - 5);
		}
	}

	public byte[] Uni2GB(char unicode) {

		Integer index = (Integer) UniGB.get(new Character(unicode));
		if (index == null)
			return null;
		byte ch[] = new byte[2];
		ch[0] = high[index.intValue()];
		ch[1] = low[index.intValue()];
		return ch;
	}

	public char GB2Uni(byte high, byte low) {
		int index = getGBindex(high, low);
		if (index == -1) // not GB Chinese
			return 0;
		return (unichar[index]);
	}

	public static void main(String[] args) {
		// D:/eclipse/workspace/ecside/src/org/extremecomponents/table/resource/
		// extremetableResourceBundle_zh_CN.properties
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -