java中怎么获得字符的Unicode码? 20

输入一个字符串返回他的Unicode码表示例如输入“我”返回“\u6211”我自己找到了。直接将char转换成int得到的就是对应的Unicode码了。。再用16进制表示... 输入一个字符串
返回他的Unicode码表示
例如 输入“我”
返回“\u6211”
我自己找到了。 直接将char 转换成int 得到的就是对应的Unicode码了。。再用16进制表示就可以了。
java.lang.Integer.toHexString(int i)
展开
 我来答
方杭尽
2007-08-18 · TA获得超过1万个赞
知道大有可为答主
回答量:1296
采纳率:0%
帮助的人:655万
展开全部
//程序里的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;
}
}
}
性情中人的文库
2015-08-31 · TA获得超过481个赞
知道小有建树答主
回答量:219
采纳率:90%
帮助的人:154万
展开全部
//程序里的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;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿风话事
2021-08-25 · 说世间百态、聊奇闻趣事,分享个人观点和独到见解,感谢关注和支...
阿风话事
采纳数:16 获赞数:103

向TA提问 私信TA
展开全部
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;
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿里斯库
2007-08-06 · TA获得超过180个赞
知道答主
回答量:85
采纳率:0%
帮助的人:0
展开全部
\bin\native2ascii.exe
直接运行他 然后输入汉字 点回车
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月今夜白
2015-08-23 · TA获得超过198个赞
知道小有建树答主
回答量:162
采纳率:0%
帮助的人:104万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式