如何获取unicode编码

sleepzzzzz 2010-12-11 08:58:38
各位好,请教两个问题。
1.取字符的unicode码
例如:'中'的unicode十进制的编码为20013 ,大写'A'为65 ,java里有函数直接获得吗或者有什么好办法实现。

2.已知unicode码,转为字符
如: 20013(十进制)在unicode中对应的字符是'中',65对应'A',java里如何转换??

50分请教,得到答案马上结帖。


...全文
577 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
shaosijun2004 2010-12-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 andyniuandyniu 的回复:]
String result = null ;
int i = 9;
result.toCharArray()[0] = (char)i;
[/Quote]
@_@!您这能编译过,没空指针异常?
andyniuandyniu 2010-12-11
  • 打赏
  • 举报
回复
String result = null ;
int i = 9;
result.toCharArray()[0] = (char)i;
andyniuandyniu 2010-12-11
  • 打赏
  • 举报
回复
int s=20013;
char v=(char)s;
System.out.println(v);

你将result 声明为char不就行了吗?
字符串不行
shaosijun2004 2010-12-11
  • 打赏
  • 举报
回复
我知道字符'中',要得到20013:
int ascii = (int)'中';
System.out.println(ascii);


我现在已知20013,要得到字符'中':
char c = (char)20013;
System.out.println(c);

-----
应该清楚了吧……
sleepzzzzz 2010-12-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 shaosijun2004 的回复:]
你定义的i = 9; 那个是对应的是控制^I TAB
如果得到 了 ascii 码,转换成 字符就是 int i = 57; char c = (char)i; c这个就是字符9
[/Quote]

我有点晕了,你们再仔细看看我的需求好吗。
不过也许我表达得不够清楚。

例如下面:
汉字“中”的 Unicode 编码:十进制的为20013,十六进制的是4E2D。
我现在已知20013,要得到字符'中'。反之,我知道字符'中',要得到20013。
shaosijun2004 2010-12-11
  • 打赏
  • 举报
回复
按照题目答:
1、
举例1:String s = "年";
char[] arr = s.toCharArray();
int value = (int)arr[0];//这个就是你要的那个10进制的ascii码

举例2:char s = '年';
int value = (int)s;//这个就是你要的那个10进制的ascii码

2、
举例1: '中'的unicode十进制的编码为20013 ,大写'A'为65
int middle = 20013;
char c = (char)20013;//这个就是字符“中”字

int A = 65;
char a = (char)65;//这个就是字符A

lll07lll 2010-12-11
  • 打赏
  • 举报
回复
是控制^I TAB
shaosijun2004 2010-12-11
  • 打赏
  • 举报
回复
你定义的i = 9; 那个是对应的是控制^I TAB
如果得到 了 ascii 码,转换成 字符就是 int i = 57; char c = (char)i; c这个就是字符9
sleepzzzzz 2010-12-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 shaosijun2004 的回复:]
你没理解
Stinr result = null;
int i = 57;
result = (char)i; 输出才是9

这个(char)i是按照ascii码转换成字符的

你想要获取某个字符的ascii码 就用 char c = '9'; int aci= (int)c;
[/Quote]

谢谢,不过我还是不理解:)
麻烦你看一下我的原始题目,我的需求是:已知20013,得到字符'中',unicode的,反之亦然。
shaosijun2004 2010-12-11
  • 打赏
  • 举报
回复
你没理解
Stinr result = null;
int i = 57;
result = (char)i; 输出才是9

这个(char)i是按照ascii码转换成字符的

你想要获取某个字符的ascii码 就用 char c = '9'; int aci= (int)c;
sleepzzzzz 2010-12-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fantasy0126 的回复:]
int a=20013,b=65;
System.out.println("a-->"+(char)a+"\nb-->"+(char)b);

输出结果:
a-->中
b-->A
[/Quote]

放在print是可以的。
为什么放在过程里不行?如下面:
String result = null;
int i = 9;
result = (char)i; //这样不可以。麻烦帮我测试一下,我没有JAVA环境。
shaosijun2004 2010-12-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 shaosijun2004 的回复:]
public class Test {
public static void main(String[] a){
String s = "年";
char[] arr = s.toCharArray();
int value = (int)arr[0];//ascii
System.out.println(value);
String hex = Integer.toHexString……
[/Quote]
更正一下
int value = (int)arr[0]; //这个应该是10进制的表示形式
shaosijun2004 2010-12-11
  • 打赏
  • 举报
回复
public class Test {
public static void main(String[] a){
String s = "年";
char[] arr = s.toCharArray();
int value = (int)arr[0];//ascii
System.out.println(value);
String hex = Integer.toHexString(value);//unicode
System.out.println(hex);//output: 5e74
System.out.println("\u5e74");


}
}

楼主执行下就明白了
fantasy0126 2010-12-11
  • 打赏
  • 举报
回复
int a=20013,b=65;
System.out.println("a-->"+(char)a+"\nb-->"+(char)b);

输出结果:
a-->中
b-->A

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧