MCPcopy Create free account
hub / github.com/codenameone/CodenameOne / appendHex

Method appendHex

CodenameOne/src/com/codename1/io/Util.java:1504–1536  ·  view source on GitHub ↗
(StringBuilder sbuf, char ch)

Source from the content-addressed store, hash-verified

1502 }
1503
1504 private static void appendHex(StringBuilder sbuf, char ch) {
1505 int firstLiteral = ch / 256;
1506 int secLiteral = ch % 256;
1507 if (firstLiteral == 0 && secLiteral < 127) {
1508 sbuf.append("%");
1509 String s = Integer.toHexString(secLiteral).toUpperCase();
1510 if (s.length() == 1) {
1511 sbuf.append("0");
1512 }
1513 sbuf.append(s);
1514 return;
1515 }
1516 if (ch <= 0x07ff) {
1517 // 2 literals unicode
1518 firstLiteral = 192 + (firstLiteral << 2) + (secLiteral >> 6);
1519 secLiteral = 128 + (secLiteral & 63);
1520 sbuf.append("%");
1521 sbuf.append(Integer.toHexString(firstLiteral).toUpperCase());
1522 sbuf.append("%");
1523 sbuf.append(Integer.toHexString(secLiteral).toUpperCase());
1524 } else {
1525 // 3 literals unicode
1526 int thirdLiteral = 128 + (secLiteral & 63);
1527 secLiteral = 128 + ((firstLiteral % 16) << 2) + (secLiteral >> 6);
1528 firstLiteral = 224 + (firstLiteral >> 4);
1529 sbuf.append("%");
1530 sbuf.append(Integer.toHexString(firstLiteral).toUpperCase());
1531 sbuf.append("%");
1532 sbuf.append(Integer.toHexString(secLiteral).toUpperCase());
1533 sbuf.append("%");
1534 sbuf.append(Integer.toHexString(thirdLiteral).toUpperCase());
1535 }
1536 }
1537
1538 /// Converts a relative url e.g.: /myfile.html to an absolute url
1539 ///

Callers 1

encodeMethod · 0.95

Calls 4

toHexStringMethod · 0.95
lengthMethod · 0.95
appendMethod · 0.65
toUpperCaseMethod · 0.65

Tested by

no test coverage detected