续上文,中的\u00a0是怎么解释出来的

Posted 亮sir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了续上文,中的\u00a0是怎么解释出来的相关的知识,希望对你有一定的参考价值。

 


public
String utf8ToUnicode(String inStr) { char[] myBuffer = inStr.toCharArray(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < inStr.length(); i++) { UnicodeBlock ub = UnicodeBlock.of(myBuffer[i]); if(ub == UnicodeBlock.BASIC_LATIN){ //英文及数字等 sb.append(myBuffer[i]); }else if(ub == UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS){ //全角半角字符 int j = (int) myBuffer[i] - 65248; sb.append((char)j); }else{ //汉字 short s = (short) myBuffer[i]; String hexS = Integer.toHexString(s); String unicode = "\\u"+hexS; sb.append(unicode.toLowerCase()); } } return sb.toString(); }

  以上是utf8转换成unicode的方法

  同样有一种反过来的:

  

public static String unicodeToUtf8(String theString) {
          char aChar;
          int len = theString.length();
          StringBuffer outBuffer = new StringBuffer(len);
          for (int x = 0; x < len;) {
              aChar = theString.charAt(x++);
              if (aChar == ‘\\‘) {
                  aChar = theString.charAt(x++);
                  if (aChar == ‘u‘) {
                      // Read the xxxx
                      int value = 0;
                      for (int i = 0; i < 4; i++) {
                          aChar = theString.charAt(x++);
                          switch (aChar) {
                              case ‘0‘:
                              case ‘1‘:
                              case ‘2‘:
                              case ‘3‘:
                              case ‘4‘:
                              case ‘5‘:
                              case ‘6‘:
                              case ‘7‘:
                              case ‘8‘:
                              case ‘9‘:
                                  value = (value << 4) + aChar - ‘0‘;
                              break;
                              case ‘a‘:
                              case ‘b‘:
                              case ‘c‘:
                              case ‘d‘:
                              case ‘e‘:
                              case ‘f‘:
                                  value = (value << 4) + 10 + aChar - ‘a‘;
                              break;
                              case ‘A‘:
                              case ‘B‘:
                              case ‘C‘:
                              case ‘D‘:
                              case ‘E‘:
                              case ‘F‘:
                                  value = (value << 4) + 10 + aChar - ‘A‘;
                              break;
                              default:
                                  throw new IllegalArgumentException("Malformed   \\uxxxx   encoding.");
                          }    
                      }
                      outBuffer.append((char) value);
                  } else {
                      if (aChar == ‘t‘)
                          aChar = ‘\t‘;
                      else if (aChar == ‘r‘)
                          aChar = ‘\r‘;
                      else if (aChar == ‘n‘)
                          aChar = ‘\n‘;
                      else if (aChar == ‘f‘)
                          aChar = ‘\f‘;
                      outBuffer.append(aChar);
                  }
              } else
                  outBuffer.append(aChar);
          }//end for
          return outBuffer.toString();
    }

 

以上是关于续上文,中的\u00a0是怎么解释出来的的主要内容,如果未能解决你的问题,请参考以下文章

Apache POI 异常空白(已解决:\u00A0 不间断空格)

...续上文(一个小萌新的C语言之旅)

GraphQLError:语法错误:无法解析意外字符“\u00A0”

从字符串中删除 \\U00a0 - iOS

python 爬虫爬取内容时, xa0 u00A0,u0020, u3000 的含义与处理方法

qemu模拟vexpress开发板(续)