Кодирование строки в ссылку

  1. private String urlName(String url) {
  2.     if (url == null)  return null;
  3.     StringBuffer sb = new StringBuffer();
  4.     for (int i = 0; i < url.length(); i++) {
  5.         char ch = url.charAt(i);
  6.         switch (ch) {
  7.             default:
  8.                 if (ch < '\200') {
  9.                     sb.append(ch);
  10.                     break;
  11.                 }
  12.                 if (ch > '\177' && ch < '\u0800') {
  13.                     sb.append('%');
  14.                     sb.append(Integer.toHexString((ch >> 6 | 0xc0) + 256).substring(1));
  15.                     sb.append('%');
  16.                     sb.append(Integer.toHexString((ch & 0x3f | 0x80) + 256).substring(1));
  17.                     break;
  18.                 }
  19.                 if (ch > '\u07FF' && ch < '\0') {
  20.                     sb.append('%');
  21.                     sb.append(Integer.toHexString((ch >> 12 | 0xe0) + 256).substring(1));
  22.                     sb.append('%');
  23.                     sb.append(Integer.toHexString((ch >> 6 & 0x3f | 0x80) + 256).substring(1));
  24.                     sb.append('%');
  25.                     sb.append(Integer.toHexString((ch & 0x3f | 0x80) + 256).substring(1));
  26.                 }
  27.                 break;
  28.             case 0: //'\0'
  29.             case 32: sb.append("%20"); break;// ' '
  30.             case 61: sb.append("%3d"); break;// '='
  31.             case 43: sb.append("%2b"); break;// '+'
  32.             case 39: sb.append("%27"); break;// '\''
  33.             case 46: sb.append("%2E"); break;// '.'
  34.             case 60: sb.append("%3c"); break;// '<'
  35.             case 62: sb.append("%3e"); break;// '>'
  36.             case 35: sb.append("%23"); break;// '#'
  37.             case 37: sb.append("%25"); break;// '%'
  38.             case 38: sb.append("%26"); break;// '&'
  39.             case 123:sb.append("%7b"); break;// '{'
  40.             case 125:sb.append("%7d"); break;// '}'
  41.             case 92: sb.append("%5c"); break;// '\\'
  42.             case 94: sb.append("%5e"); break;// '^'
  43.             case 126:sb.append("%73"); break;// '~'
  44.             case 91: sb.append("%5b"); break;// '['
  45.             case 93: sb.append("%5d"); break;// ']'
  46.             case 58: sb.append("%3A"); break;// ':'
  47.             case 47: sb.append("%2F"); break;// '/'
  48.             case 63: sb.append("%3F"); break;// '?'
  49.             case 45: sb.append("%2D"); break;// '-'
  50.             case 33: sb.append("%21"); break;// '!'
  51.             case 59: sb.append("%3B"); break;// ';'
  52.         }
  53.     }
  54.     return sb.toString();
  55. }
Преобразует строку в формат ссылки.
%2D%2D%3e%20%d0%9d%d0%b0%d0%96%d0%bc%d0%98%20%5b%2b%5d%20%3c%2D%2D

Реклама

Мы в соцсетях

tw tg yt gt