unicode字符和String类型相互转换

原创 2006年05月18日 18:22:00

import java.util.*;
public class unicodetostring
{
public static void main(String[] args)
 {
  
        //for(int i= 0;i<args.length;i++)
  //{
       //    String stu = StringToUnicode(args[i]);
  //   System.out.println(" "+stu+" ");
  
  // }
  
  for(int i= 0;i<args.length;i++)
  {
           String stu = UnicodeToString(args[i]);
     System.out.println(" "+stu+" ");
  
   }
}
/**
     *    Stringtounicode
     *
     * @param asString
     * @return
     */
    public static final String StringToUnicode(String asString) {
        char[] ac = asString.toCharArray();
        int iValue;
        String s = null;
        StringBuffer sb = new StringBuffer();
        for (int ndx = 0; ndx < ac.length; ndx++) {
            iValue = ac[ndx];
            if (iValue < 0x10) {
                s = "//u000";
            } else if (iValue < 0x100) {
                s = "//u00";
            } else if (iValue < 0x1000) {
                s = "//u0";
            } else {
                s = "//u";
            }
            sb.append(s + Integer.toHexString(iValue));
        }
        return sb.toString();
    }

    /**
     *   unicodetoString
     *
     * @param s
     * @return
     */
    public static final String UnicodeToString(String s) {
     if (s==null||"".equalsIgnoreCase(s.trim())) return "";
        StringBuffer sb = new StringBuffer();
        boolean escape = false;
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            switch (c) {
            case '//':
            case '%': 
                escape = true;
                break;
            case 'u':
            case 'U':
                if (escape) {
                    try {
                        sb.append((char) Integer.parseInt(s.substring(i + 1,
                                i + 5), 16));
                        escape = false;
                    } catch (NumberFormatException e) {
                        throw new IllegalArgumentException();
                    }
                    i += 4;
                } else {
                    sb.append(c);
                }
                break;
            default:
                sb.append(c);
                break;
            }
        }
        return sb.toString();
    }
 }
  

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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

第二篇:JAVA字符编码系列二:Unicode,ISO-8859-1,GBK,UTF-8编码及相互转换 1、函数介绍在Java中,字符串用统一的Unicode编码,每个字符占用两个字节,与编码有关的两...

UNICODE下宽字符的CString转换为const char *和char到WCHAR的相互转换

一、 使用函数_tcscpy_s: CString theString( "This is a test" ); int    sizeOfString = (theString.GetLe...

Unicode环境下完成CString向string类型的转换

CString是MFC的字符串类,它不是基本类型,而是对字符串的封装,它是自适应的,在UNICODE环境下就是CStringW,在非UNICODE环境下就是CStringA。       CStri...

Unicode编码的项目中CString、char* 、wstring、string的相互转换

1、CString转char* 可以使用以下函数: static char* StringToChar(CString str){ //获取字符串大小 int len = WideCharTo...

CString string char等字符类型的相关知识和转换

CString,int,string,char*之间的转换string 转 CStringCString.format(”%s”, string.c_str());char 转 CStringCStr...

MFC/C++/C中字符类型CString, int, string, char*之间的转换

1 CString,int,string,char*之间的转换  string 转 CString  CString.format("%s", string.c_str());    char...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)