Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

29
LINES

< > BotCompany Repo | #1011153 // htmlencode_noQuotes - now with extended unicode characters

JavaX fragment (include) [tags: use-pretranspiled]

Libraryless. Click here for Pure Java version (3981L/23K).

1  
sS htmlencode_noQuotes(S s) {
2  
  if (s == null) ret "";
3  
  int n = s.length();
4  
  StringBuilder out = null;
5  
  
6  
  macro builder {
7  
    out if null = new StringBuilder(Math.max(16, n)).append(takeFirst(i, s));
8  
    out
9  
  }
10  
  
11  
  for i to n: {
12  
    char c = s.charAt(i);
13  
    if (c == '<') {
14  
      builder.append("&lt;");
15  
    }
16  
    else if (c == '>') {
17  
      builder.append("&gt;");
18  
    }
19  
    else if (c > 127 || c == '&') {
20  
      int cp = s.codePointAt(i);
21  
      builder.append("&#x");
22  
      out.append(intToHex_flexLength(cp));
23  
      out.append(';');
24  
      i += Character.charCount(cp)-1;
25  
    } else
26  
      out?.append(c);
27  
  }
28  
  ret out == null ? s : out.toString();
29  
}

Author comment

Began life as a copy of #1001263

download  show line numbers  debug dex  old transpilations   

Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, ekrmjmnbrukm, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt

No comments. add comment

Snippet ID: #1011153
Snippet name: htmlencode_noQuotes - now with extended unicode characters
Eternal ID of this version: #1011153/10
Text MD5: 2f0d6ada07a1dbcb7b54fe488b26d2d4
Transpilation MD5: 2fe144c2f73830c0fb07de4eeaf91bb2
Author: stefan
Category: javax / html
Type: JavaX fragment (include)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2021-10-10 23:52:32
Source code size: 686 bytes / 29 lines
Pitched / IR pitched: No / No
Views / Downloads: 481 / 720
Version history: 9 change(s)
Referenced in: [show references]