unicode 解码
程序员文章站
2022-07-05 16:28:44
...
1,如何把Unicode转化为正常字符呢?
/**
* 把unicode转化为中文
* @param str
* @return
*/
public static String unicodeToChinese(String str) {
if (IsChineseUtil.isHasChinses2(str))//判断是否有中文字符
return str;
if (str.indexOf("\\u") == -1 || str == null || "".equals(str.trim())) {/*若不是unicode,则直接返回*/
return str.replaceAll("\\\\ ", " ");//删掉英文中的\,such as "default\ value1"
/* 主要是针对 zk 中的国际化问题 */
}
StringBuffer sb = new StringBuffer();
if(!str.startsWith("\\u")){/*若开头不是unicode,如“abc\u4e2d\u56fd” */
int index=str.indexOf("\\u");
sb.append(str.substring(0, index));
str=str.substring(index);
}
if (str.endsWith(":")) /*如“\u4e2d\u56fd:” */{
str = str.substring(0, str.length() - 1);
}
String[] chs = str.trim().split("\\\\u");
for (int i = 0; i < chs.length; i++) {
String ch = chs[i].trim();
if (ch != null && !"".equals(ch)) {
int length_ch=ch.length();
if(length_ch>4){
length_ch=4;
}//中文的长度是4,英文的长度是2
sb.append((char) Integer.parseInt(ch.substring(0, length_ch), 16));//按照十六进制解析
if (ch.length() > 4) {
sb.append(ch.substring(4));
}
}
}
return sb.toString();
}
应用:
selectContent=Conversion.unicodeToChinese(selectContent);
依赖的方法:
public static boolean isHasChinses2(String str)
{
String encodeName = "UTF-8";
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++)
{
try
{
char c = chars[i];
int leng = getEncodeLength(c, encodeName);
// System.out.println(singleStr + "\t" + leng);
if (leng == 9)//表示是中文字符
{
// System.out.println("有中文");
return true;
}
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
catch (MyException e)
{
e.printStackTrace();
}
}
return false;
}
public static int getEncodeLength(String str, String encodeName)
throws MyException, UnsupportedEncodingException
{//返回值为9 的话,则说明有中文。
if (str.length() != 1)
{
throw new MyException("超过一个字符");
}
String encod = URLEncoder.encode(str, "UTF-8");
return encod.length();
}
public static int getEncodeLength(char c, String encodeName)
throws MyException, UnsupportedEncodingException
{//返回值为9 的话,则说明有中文。
return getEncodeLength(String.valueOf(c), encodeName);
}
上一篇: html 中 xmp标记
下一篇: js 中编码和解码
推荐阅读
-
如何让Jackson JSON生成的数据包含的中文以unicode方式编码
-
IOS中对Url进行编码和解码示例
-
asp.net+js实现批量编码与解码的方法
-
C#实现Json转Unicode的方法
-
Base64编码解码原理及C#编程实例
-
python 转换 Javascript %u 字符串为python unicode的代码
-
Python 编码处理-str与Unicode的区别
-
基于google zxing的Java二维码生成与解码
-
Mysql中校对集utf8_unicode_ci与utf8_general_ci的区别说明
-
Mac OS下为Android Studio编译FFmpeg解码库的详细教程