자바 유 니 코드 와 UTF-8 사이 의 인 스 턴 스 변환

3575 단어 자바UnicodeUTF-8
utf-8 변환 유 니 코드

 public static 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();
  }
유 니 코드 변환 utf-8

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 = '
'; else if (aChar == 'f') aChar = '\f'; outBuffer.append(aChar); } } else outBuffer.append(aChar); } return outBuffer.toString(); }
추가 지식:java get 요청 테이프 파라미터 오류 java.io.IOException:Server returned HTTP response code:400 for URL

해결 방안
JAVA 를 사용 하여 http 요청 을 할 때 자주 이 오류 가 발생 합 니 다.저희 copy 요청 주 소 는 브 라 우 저 에서 실 행 될 때 정상적으로 실 행 됩 니 다.이 오류 가 발생 한 이 유 는 요청 한 URL 에 빈 칸 이 포함 되 어 있 기 때 문 입 니 다.이 럴 때 저 희 는 URLEncoder.encode(timestamp,utf-8)를 사용 하여 빈 칸 이 있 는 인 자 를 처리 해 야 합 니 다.(timestamp,utf-8)주:처리 해 야 할 매개 변수 부분 만 처리 하고 전체 URL 을 넣 지 마 십시오.전체 URL 을 넣 으 면 URL 의"/"도 처리 합 니 다.

이상 의 자바 유 니 코드 와 UTF-8 사이 의 인 스 턴 스 전환 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.참고 하 실 수 있 고 많은 응원 부 탁 드 리 겠 습 니 다.

좋은 웹페이지 즐겨찾기