Java 汉字与unicode的相互转换

概要:

Java 汉字与unicode的相互转换

| |目录

正文

package net.xsoftlab.baike;
//Color
public class UnicodeStr {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		System.out.println(str2Unicode("最真不过平淡,最美不过平凡。"));
		System.out
				.println(unicode2Str("u6700u771fu4e0du8fc7u5e73u6de1uff0cu6700u7f8eu4e0du8fc7u5e73u51e1u3002"));
	}
	public static String str2Unicode(String s) {
		String str = "";
		if ((s == null) || (s.trim().equals("")))
			return str;
		for (int i = 0; i < s.length(); i++) {
			byte[] bytes = String.valueOf(s.charAt(i)).getBytes();
			String s4;
			if (bytes.length == 1) {
				s4 = String.valueOf(s.charAt(i));
			} else {
				int ch = s.charAt(i);
				s4 = "\u" + Integer.toHexString(ch);
			}
			str = str + s4;
		}
		return str;
	}
	public static String unicode2Str(String theString) {
		char aChar;
		int len = theString.length();
		StringBuffer outBuffer = new StringBuffer(len);
		for (int x = 0; x < len;) {
			aChar = theString.charAt(x++);
			if (aChar == '\') {
				aChar = theString.charAt(x++);
				if (aChar == 'u') {
					int value = 0;
					for (int i = 0; i < 4; i++) {
						aChar = theString.charAt(x++);
						switch (aChar) {
						case '0':
						case '1':
						case '2':
						case '3':
						case '4':
						case '5':
						case '6':
						case '7':
						case '8':
						case '9':
							value = (value << 4) + aChar - '0';
							break;
						case 'a':
						case 'b':
						case 'c':
						case 'd':
						case 'e':
						case 'f':
							value = (value << 4) + 10 + aChar - 'a';
							break;
						case 'A':
						case 'B':
						case 'C':
						case 'D':
						case 'E':
						case 'F':
							value = (value << 4) + 10 + aChar - 'A';
							break;
						default:
							throw new IllegalArgumentException(
									"Malformed      encoding.");
						}
					}
					outBuffer.append((char) value);
				} else {
					if (aChar == 't') {
						aChar = '	';
					} else if (aChar == 'r') {
						aChar = '
';
					} else if (aChar == 'n') {
						aChar = '
';
					} else if (aChar == 'f') {
						aChar = 'f';
					}
					outBuffer.append(aChar);
				}
			} else {
				outBuffer.append(aChar);
			}
		}
		return outBuffer.toString();
	}
}

来源

来自CSDN博客:java,汉字转unicode码|unicode转汉字

评论关闭
评论 还能输入200
评论关闭
评论 还能输入200
资料加载中...
已关注 , 取消