java中怎么获得字符的Unicode码?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中怎么获得字符的Unicode码?相关的知识,希望对你有一定的参考价值。
输入一个字符串
返回他的Unicode码表示
例如 输入“我”
返回“\u6211”
我自己找到了。 直接将char 转换成int 得到的就是对应的Unicode码了。。再用16进制表示就可以了。
java.lang.Integer.toHexString(int i)
//你运行这个程序了么,我运行的时候都好着啊。
//你也可以变通一下啊,看里面的来龙去脉都是什么样的哦,
//那样就知道怎么弄了,而不是依靠别人。这个不是很难。
//out.append(str);
//out.append(str1); 这两句千万不能颠倒。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
public class Unicode
public static void main(String[] args)
Unicode instance = new Unicode();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line;
try
while ((line = reader.readLine()) != null)
if(line.trim().equals("q")) System.exit(0);
String s = instance.getBytes(line);
System.out.println("bytes:" + s);
//System.out.println("line:"+);
catch (IOException e)
e.printStackTrace();
String getBytes(String s)
try
StringBuffer out = new StringBuffer("");
byte[] bytes = s.getBytes("unicode");
for (int i = 2; i < bytes.length-1; i+=2)
out.append("\\u");
String str = Integer.toHexString(bytes[i+1] & 0xff);
for (int j = str.length(); j < 2; j++)
out.append("0");
String str1 = Integer.toHexString(bytes[i] & 0xff);
out.append(str);
out.append(str1);
return out.toString();
catch (UnsupportedEncodingException e)
e.printStackTrace();
return null;
参考技术A //程序里的getBytes方法可以实现你要的功能,你看看。
//你运行这个程序了么,我运行的时候都好着啊。
//你也可以变通一下啊,看里面的来龙去脉都是什么样的哦,
//那样就知道怎么弄了,而不是依靠别人。这个不是很难。
//out.append(str);
//out.append(str1); 这两句千万不能颠倒。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
public class Unicode
public static void main(String[] args)
Unicode instance = new Unicode();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line;
try
while ((line = reader.readLine()) != null)
if(line.trim().equals("q")) System.exit(0);
String s = instance.getBytes(line);
System.out.println("bytes:" + s);
//System.out.println("line:"+);
catch (IOException e)
e.printStackTrace();
String getBytes(String s)
try
StringBuffer out = new StringBuffer("");
byte[] bytes = s.getBytes("unicode");
for (int i = 2; i < bytes.length-1; i+=2)
out.append("\\u");
String str = Integer.toHexString(bytes[i+1] & 0xff);
for (int j = str.length(); j < 2; j++)
out.append("0");
String str1 = Integer.toHexString(bytes[i] & 0xff);
out.append(str);
out.append(str1);
return out.toString();
catch (UnsupportedEncodingException e)
e.printStackTrace();
return null;
参考技术B public String getUnicode(String s)
try
StringBuffer unicode = new StringBuffer("");
byte[] bytes = s.getBytes("unicode"); // 没有得到真的 Unicode 编码
for (int i = 2; i < bytes.length - 1; i += 2) // i 为什么要间隔 2
unicode.append("\\u");
// 取一个字符的第 3 个字节,Unicode 编码使用 4 个字节表示一个字符。为什么要和 11111111 做与运算呢?
String str = Integer.toHexString(bytes[i] & 0xff);
unicode.append(str);
// 取一个字符的第 4 个字节为什么要和 11111111 做与运算呢?
String str1 = Integer.toHexString(bytes[i + 1] & 0xff);
// 判断十六进制的字符串如果不足 2 位,则在前面补 1 个 0
for (int j = str1.length(); j < 2; j++) // 什么情况下 j 会是 0 或者 1 呢?
unicode.append("0");
unicode.append(str1);
return unicode.toString();
catch (UnsupportedEncodingException e)
e.printStackTrace();
return null;
参考技术C \bin\native2ascii.exe
直接运行他 然后输入汉字 点回车 参考技术D
java中如何获得一个字符的unicode编码
java中可以使用char类提供的charAt()方法来获得字符的unicode的编码值,示例如下:public static String getUnicode(String source) String returnUniCode=null; String uniCodeTemp=null; for(int i=0;i<source.length();i++) uniCodeTemp = "\\u"+Integer.toHexString((int)source.charAt(i));//使用char类的charAt()的方法 returnUniCode=returnUniCode==null?uniCodeTemp:returnUniCode+uniCodeTemp; System.out.print(source +" 's unicode = "+returnUniCode); return returnUniCode;//返回一个字符的unicode的编码值 参考技术A 可以直接强制类型转换打印出Unicode码
public static void main(String[] args)
char a = '1';
System.out.println((int)a);
49
以上是关于java中怎么获得字符的Unicode码?的主要内容,如果未能解决你的问题,请参考以下文章
字符映射表中没有的,无字符的Unicode码怎么才能打出来?如下