`
ekumen
  • 浏览: 108098 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

中文与Unicode表示转换--java实现

    博客分类:
  • java
阅读更多
public class Test {
	public static void main(String[] args) {
		String s = "简介";
		String tt = gbEncoding(s);
		System.out.println(decodeUnicode(tt));
	}


	public static String gbEncoding(final String gbString) {
		char[] utfBytes = gbString.toCharArray();
		String unicodeBytes = "";
		for (int byteIndex = 0; byteIndex < utfBytes.length; byteIndex++) {
			String hexB = Integer.toHexString(utfBytes[byteIndex]);
			if (hexB.length() <= 2) {
				hexB = "00" + hexB;
			}
			unicodeBytes = unicodeBytes + "\\u" + hexB;
		}
		System.out.println("unicodeBytes is: " + unicodeBytes);
		return unicodeBytes;
	}

	public static String decodeUnicode(final String dataStr) {
		int start = 0;
		int end = 0;
		final StringBuffer buffer = new StringBuffer();
		while (start > -1) {
			end = dataStr.indexOf("\\u", start + 2);
			String charStr = "";
			if (end == -1) {
				charStr = dataStr.substring(start + 2, dataStr.length());
			} else {
				charStr = dataStr.substring(start + 2, end);
			}
			char letter = (char) Integer.parseInt(charStr, 16); // 16进制parse整形字符串。
			buffer.append(new Character(letter).toString());
			start = end;
		}
		return buffer.toString();
	}
}
分享到:
评论
3 楼 mikey_5 2013-02-17  
谢谢,其实转换成汉字只需要这样子:

String str = "\u8BF7\u5148\u767B\u5F55";

		System.out.println("转为汉字是:" + str);
2 楼 hw1287789687 2011-11-26  
package com.kingbase.unicode2chinese;

import com.isch.zh.hw.util.IsChineseUtil;

//import com.isch.zh.hw.util.IsChineseUtil;

public class Conversion {
	/**
	 * 中文转-->unicode
	 * 
	 * @param str
	 * @return 反回unicode编码
	 */
	public static String chinaToUnicode(String str) {
		StringBuffer result = new StringBuffer();
		for (int i = 0; i < str.length(); i++) {
			int chr1 = (char) str.charAt(i);
			result.append("\\u" + Integer.toHexString(chr1));

		}
		return result.toString();
	}

	/**
	 * unicode转-->中文
	 * 
	 * @param str
	 * @return 中文
	 */
	/*
	 * public static String unicodeToChinese(String str) { StringBuffer sb = new
	 * StringBuffer(); for (char c : str.toCharArray()) { sb.append(c); } return
	 * sb.toString(); }
	 */
	public String abc() {
		return "abc";
	}
	/**
	 * 把unicode转化为中文
	 * @param str
	 * @return
	 */
	public static String unicodeToChinese(String str) {
		if (IsChineseUtil.isHasChinses2(str))//判断是否有中文字符
			return str;
		if (str.indexOf("\\u") == -1 || str == null || "".equals(str.trim())) {/*若不是unicode,则直接返回*/
			return str.replaceAll("\\\\ ", " ");//删掉英文中的\,such as "default\ value1"
			/* 主要是针对 zk 中的国际化问题 */
		}
		StringBuffer sb = new StringBuffer();
		if(!str.startsWith("\\u")){/*若开头不是unicode,如“abc\u4e2d\u56fd” */
			int index=str.indexOf("\\u");
			sb.append(str.substring(0, index));
			str=str.substring(index);
		}
		if (str.endsWith(":")) /*如“\u4e2d\u56fd:” */{
			str = str.substring(0, str.length() - 1);
		}
		String[] chs = str.trim().split("\\\\u");
		
		for (int i = 0; i < chs.length; i++) {
			String ch = chs[i].trim();
			if (ch != null && !"".equals(ch)) {

				sb.append((char) Integer.parseInt(ch.substring(0, 4), 16));
				if (ch.length() > 4) {
					sb.append(ch.substring(4));
				}
			}
		}
		return sb.toString();
	}

	public static void main(String args[]) {
//		// unicode转中文
//		String str = "\u9ec42";
//		Conversion con = new Conversion();

//		System.out.println(con.unicodeToChinese(str));
		// System.out.println(Character.charCount(0x9ec4));
		// for(char c : str.toCharArray())
		// System.out.print(c);
		// System.out.println((char)Integer.parseInt("9ec4",16));

	}

	public static String resolveUnicode(String oldValue, boolean isToUnicode) {
		if (isToUnicode) {
			return chinaToUnicode(oldValue);
		} else {
			return unicodeToChinese(new String(oldValue));
		}
	}

}

1 楼 xiaoyiz 2010-01-08  
\u8BF7\u9009\u62E9\u5DE5\u7A0B\u6216\u6587\u4EF6 很长的时候会报错。。。

相关推荐

    字符编码转换 convert unicode to Shift-JIS

    各类编码转换,从unicode 到 Shift-JIS

    java 中文Unicode转换

    总的来说,Java提供了丰富的API来处理Unicode编码,无论是转换中文字符还是从Unicode码点恢复字符,都可以轻松实现。在处理多语言文本时,理解和熟练运用Unicode编码是至关重要的。通过上述方法,你可以有效地在Java...

    JAVA字符编码:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换

    ### JAVA字符编码详解:Unicode, ISO-8859-1, GBK, UTF-8 及其相互转换 #### 一、引言 在Java编程中,字符编码的管理和转换是一项基本而又重要的任务。不同的编码标准适用于不同的场景,而理解和掌握这些编码之间...

    java实现十六进制字符unicode与中英文转换示例

    本示例探讨了如何使用Java实现从Unicode十六进制字符串到中英文字符的转换,以及反过来的过程。理解Unicode和UTF之间的关系是至关重要的。 Unicode是一个国际标准,它为世界上几乎所有的字符提供了一个唯一的数字...

    汉字与unicode相互转换

    汉字与 Unicode 的转换在处理中文文本时尤其重要,例如在网页编码、数据库存储、文本传输等方面。不同的编码方式(如 GB2312, GBK, Big5 等)可能会导致乱码问题,而使用 Unicode(如 UTF-8 编码)可以避免这类问题...

    关于JAVA字符编码:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换

    ### 关于JAVA字符编码:Unicode, ISO-8859-1, GBK, UTF-8 编码及相互转换 在Java开发过程中,字符编码是处理文本数据的基础,不同的编码方式会影响数据的存储、传输以及显示。本文将详细介绍几种常见的字符编码...

    UTF-8 UNICODE GBK 相互转换C源码

    GBK是中国大陆广泛使用的编码标准,它是GB2312的扩展,兼容了大部分GBK字符,主要针对中文环境,包含了许多汉字和一些其他语言的字符,但不支持Unicode。 在C语言中,进行这些编码间的转换是一项基础任务。下面分别...

    java中文乱码之解决URL中文乱码问题的方法

    在Java开发中,遇到中文乱码问题是一种常见的挑战,特别是在处理URL时。URL中文乱码问题主要是由于URL编码和解码过程中的不一致导致的。下面将详细介绍如何解决这个问题,并探讨几种常用的方法。 首先,我们需要...

    Java做的Unicode编码转换器

    这个Java实现的Unicode转换器可能包括以下几个核心功能: 1. **字符到Unicode编码转换**:程序会遍历输入的文本,对每个字符进行编码,输出对应的Unicode值。Unicode值是16进制数字,通常以`\u`开头,例如`\u4E2D`...

    常用编码(Unicode,UTF-8,GBK)转换工具

    GBK,全称“国标汉字扩展A区编码”,是中国大陆的一个汉字编码标准,它是GB2312的扩展,包含更多的汉字和符号,尤其是在处理简体中文时非常常见。GBK编码在UTF-8之前被广泛使用,但因为不支持Unicode,所以在跨语言...

    unicode 汉字转换器

    unicode 汉字转换器 unicode 汉字转换器 基于java编写,是个jar包,安装jdk后,直接双击

    unicode-中文转换

    在这个例子中,它可能链接到了一个与Unicode编码、中文转换或者与"Unicode.exe"相关的网站,提供更多的信息、教程或者更新。 Unicode编码在IT行业中有着广泛的应用。例如,HTML和XML文档使用Unicode作为其字符集的...

    Unicode-Mapping-on-Domain-names-源码.rar

    标题 "Unicode-Mapping-on-Domain-names-源码.rar" 暗示了这个压缩包包含的是与Unicode在域名中的映射相关的源代码。这通常涉及到国际化的互联网域名系统(IDN,Internationalized Domain Names),它允许使用非...

    最新mysql-connector-java-5.1.39

    MySQL Connector/J 5.1.39 是 MySQL 数据库与 Java 应用程序之间的关键桥梁,它是 MySQL 官方提供的 JDBC 驱动程序。JDBC(Java Database Connectivity)是 Java 平台上用于访问数据库的标准 API,使得 Java 开发...

    Unicode编码转换源码

    在计算机科学领域,字符编码是将字符转换为二进制表示的过程,以便计算机可以处理和存储文本。Unicode编码是一种国际标准,旨在解决不同语言和字符集之间的兼容性问题。Unicode编码转换源码主要关注如何在不同的编码...

    中文转化为unicode格式的方法类

    在编程领域,Unicode 是...`unicodeConvert.java` 类是实现这一功能的代码载体,它可以方便地在各种场景下进行中文字符与 Unicode 之间的转换。理解和掌握这些概念与方法对于进行多语言编程和处理国际化问题至关重要。

    JAVA反编译和unicode转字符.rar

    Java反编译与Unicode字符转换是Java开发过程中两个重要的技术环节。反编译是指将已编译的字节码(.class文件)转换回源代码的过程,这对于理解已有的类库或者进行逆向工程非常有用。Unicode是国际通用的字符编码标准,...

    emoji-java-Java处理Emoji的类库

    在Java开发过程中,处理Unicode表情符号(Emoji)可能是一项挑战,因为并非所有Java API都原生支持它们。这时,第三方库如"emoji-java"就显得非常有用。这个库由vdurmont开发,专为Java提供了方便的方式来解析、验证...

    Unicode码转换器

    2. **汉字单独转换**:除了整体转换文件,此工具还支持对单个汉字进行Unicode转换。这对于开发者来说非常有用,例如在编程过程中需要手动输入特殊字符的Unicode编码时,可以直接通过工具快速获取。 3. **结果保存**...

Global site tag (gtag.js) - Google Analytics