Java字符串Unicode值 [英] Java String Unicode Value

查看:39
本文介绍了Java字符串Unicode值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何获取Java中字符串的unicode值?

How can I get the unicode value of a string in java?

例如,如果字符串为"Hi"我需要类似\ uXXXX \ uXXXX

For example if the string is "Hi" I need something like \uXXXX\uXXXX

推荐答案

某些Unicode字符跨越两个Java字符.引用 http://docs.oracle.com/javase/tutorial/i18n/text/unicode.html :

Some unicode characters span two Java chars. Quote from http://docs.oracle.com/javase/tutorial/i18n/text/unicode.html :

值在16位范围之外并且在0x10000到0x10FFFF范围内的字符被称为补充字符,并被定义为一对char值.

The characters with values that are outside of the 16-bit range, and within the range from 0x10000 to 0x10FFFF, are called supplementary characters and are defined as a pair of char values.

逃脱非ASCII的正确方法:

correct way to escape non-ascii:

private static String escapeNonAscii(String str) {

  StringBuilder retStr = new StringBuilder();
  for(int i=0; i<str.length(); i++) {
    int cp = Character.codePointAt(str, i);
    int charCount = Character.charCount(cp);
    if (charCount > 1) {
      i += charCount - 1; // 2.
      if (i >= str.length()) {
        throw new IllegalArgumentException("truncated unexpectedly");
      }
    }

    if (cp < 128) {
      retStr.appendCodePoint(cp);
    } else {
      retStr.append(String.format("\\u%x", cp));
    }
  }
  return retStr.toString();
}

这篇关于Java字符串Unicode值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆