㈠ java:在Java中String是以Unicode保存的吗
字符串在java内存中总是按unicode编码存储的。比如"中文",正常情况下(即没有错误的时候)存储为"4e2d 6587",如果charset为"gbk",则被编码为"d6d0 cec4",然后返回字节"d6 d0 ce c4".如果charset为"utf8"则最后是"e4 b8 ad e6 96 87".如果是"iso8859-1",则由于无法编码,最后返回 "3f 3f"(两个问号)。
java虚拟机采用UCS2(通用字符集)标准保存字符,所有的字符在内存中都是2个字节,这样虚拟机处理字符串的截取、长度和判断都非常容易。其他语言如PHP、Python也是,在运行时采用固定长度存储字符。
相对应编译后的class,java规定采用UTF-8保存,因为大部分是英文字符,只有一个字节,可以大量节省存储空间。
㈡ 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的编码值}
㈢ 在java中如何输入unicode码出字符,有没有方法,\ 一定不行,因为unicode 码是变量
importjava.util.Scanner;
publicclasstest_unicode{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.println("请输入unicode码
例如:\u5b57\u7b26");
StringinStr=sc.nextLine();
System.out.println(decode(inStr));
sc.close();
}
publicstaticStringdecode(StringunicodeStr){
if(unicodeStr==null){
returnnull;
}
StringBufferretBuf=newStringBuffer();
intmaxLoop=unicodeStr.length();
for(inti=0;i<maxLoop;i++){
if(unicodeStr.charAt(i)=='\'){
if((i瞎碧<maxLoop-5)
&&((unicodeStr.charAt(i+1)=='u')||(unicodeStr
隐神明灶告.charAt(i+1)=='U')))
try{
retBuf.append((char)Integer.parseInt(
unicodeStr.substring(i+2,i+6),16));
i+=5;
}catch(){
retBuf.append(unicodeStr.charAt(i));
}
else
retBuf.append(unicodeStr.charAt(i));
}else{
retBuf.append(unicodeStr.charAt(i));
}
}
returnretBuf.toString();
}
}
㈣ java中unicode码编码问题:String msg1="";System.out.println(msg.getBytes("Unicode").length);
String msg2="a"散基;System.out.println(msg.getBytes("Unicode").length);
String msg3="a";System.out.println(msg.getBytes("Unicode").length);
无携册论那行,都是冲隐谨取msg来处理了。msg 的值是什么呢。
String msg2="a";System.out.println(msg2.getBytes("Unicode").length);
String msg3="a";System.out.println(msg3.getBytes("Unicode").length);
本机测试过,正常 win7 jre1.6.30
㈤ 怎样讲string转换成unicode,请高手来 Java SE
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
{
=1L;
staticJTextFieldjt1;
staticJTextAreajt2;
JScrollPanejsp;
JButtonjb;
publicUCodeDemo(){
jt1=newJTextField(20);
jt1.setText("冲族请输入....");
//给单行文本框添加事件监听,当监听到键盘的回车键的时候,显示字符在Unicode的位置
jt1.addKeyListener(newKeyAdapter(){
@Override
publicvoidkeyPressed(KeyEvente){
if(e.getKeyCode()==KeyEvent.VK_ENTER){
getUcode();
}
}
});
jt2=newJTextArea();
jb=newJButton("确定宏裤");
jsp=newJScrollPane(jt2,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
//给按钮设置事件监听,当点击按钮的时候,显示字符在Unicode的位置
jb.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
getUcode();
}
});
this.setLayout(newBorderLayout());
this.add(jt1,BorderLayout.NORTH);
this.add(jb,BorderLayout.SOUTH);
this.add(jsp,BorderLayout.CENTER);
this.setTitle("Unicode小应用");
this.setLocation(350,250);
this.setSize(300,300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
//方法:显示字符在Unicode的位置
protectedvoidgetUcode(){
Stringstr=jt1.getText();
char[]cc=str.toCharArray();
StringBuffersb=newStringBuffer();
for(inti=0;i<cc.length;i++){
sb.append("【"+cc[i]+"的Unicode位置】:"+(int)cc[i]+"
");
}
jt2.setText(sb.toString());
jt2.setForeground(getColor());
}
publicstaticvoidmain(String[]args){
newUCodeDemo();
}
privateColorgetColor(){
return蔽判简newColor(getRandom(),getRandom(),getRandom());
}
intgetRandom(){
intrgb=(int)(Math.random()*256);
returnrgb;
}
}
㈥ java程序输出Unicode码
额 你真不友好啊 别人帮你你还骂 String string = "\u000"+i; 换成单引号试试 你用字符串加整形了 字符串与字符键渗创的拼接用+号
for (int i = 0x0000; i <10 ; i++)
{
int string = '败亮首\u000'察数+i;
System.out.println(string);
}
㈦ java中Unicode码的转换
private static String decode(char[] in) throws Exception {
int off = 0;
char c;
char[] out = new char[in.length];
int outLen = 0;
while (off < in.length) {
c = in[off++];
if (c == '\\') {
if (in.length > off) { // 是否有下一个字符
c = in[off++]; // 取出下一个字符
} else {
out[outLen++] = '\\'; // 末字符为'\',返回
break;
}
if (c == 'u') { // 如果是"\\u"
int value = 0;
if (in.length > off + 4) { // 判断"\\u"后边是否有四个字符
boolean isUnicode = true;
for (int i = 0; i < 4; i++) { // 遍历四个字符
c = in[off++];
switch (c) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
value = (value << 4) + c - '0';
break;
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
value = (value << 4) + 10 + c - 'a';
break;
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
value = (value << 4) + 10 + c - 'A';
break;
default:
isUnicode = false; // 判断是否为unicode码
}
}
if (isUnicode) { // 是unicode码转换为字符
out[outLen++] = (char) value;
} else { // 不是unicode码把"\\uXXXX"填入返回值
off = off - 4;
out[outLen++] = '\\';
out[outLen++] = 'u';
out[outLen++] = in[off++];
}
} else { // 不够四个字符则把"\\u"放入返回结果并继续
out[outLen++] = '\\';
out[outLen++] = 'u';
continue;
}
} else {
switch (c) { // 判断"\\"后边是否接特殊字符,回车,tab一类的
case 't':
c = '\t';
out[outLen++] = c;
break;
case 'r':
c = '\r';
out[outLen++] = c;
break;
case 'n':
c = '\n';
out[outLen++] = c;
break;
case 'f':
c = '\f';
out[outLen++] = c;
break;
default:
out[outLen++] = '\\';
out[outLen++] = c;
break;
}
}
} else {
out[outLen++] = (char) c;
}
}
return new String(out, 0, outLen);
}
㈧ 用java如何把unicode码转成汉字
java中将unicode码转换成汉字的方式是直接使用string类型,打印即可:
Stringascii="u4f01u4e1a";//这两个unicode码就是企业的
System.out.println(ascii);//打印出来
运行结果:
企业
Unicode只有一个字符集,中、日、韩的三种文字占用了Unicode中0x3000到0x9FFF的部分 Unicode目前普遍采用的是UCS-2,它用两个字节来编码一个字符, 比如汉字"经"的编码是0x7ECF,注意字符编码一般用十六进制来 表示,为了与十进制区分,十六进制以0x开头,0x7ECF转换成十进制 就是32463,UCS-2用两个字节来编码字符,两个字节就是16位二进制, 2的16次方等于65536,所以UCS-2最多能编码65536个字符。
㈨ java中如何输出字符变量的Unicode编码值
java中可以使用char类提供的charAt()方法来获得字符的unicode的编码值,示例如下:
(9)javaunicodestring扩展阅读:
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
参考资料:网络-java
㈩ java里面怎么用一个string来计算unicode类型的md5
public int compareTo(String anotherString)
Compares two strings lexicographically. The comparison is based on the Unicode value of each character in the strings.
api中有讲尺培,是按照unicode值来比较陵毕唯的数镇。