docs: public static String decomposeToAscii(final String s) {
          /* pure java version, doesn't work all the time:
          String normalized = Normalizer.normalize(s, Normalizer.Form.NFD);
          return normalized.replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
          */
  
          // this works on more cases
          final char[] input = new char[s.length()];
          s.getChars(0, s.length(), input, 0);
          final char[] output = new char[input.length * 4];
          final int numChars = ASCIIFoldingFilter.foldToASCII(input, 0, output, 0, input.length);
  
          // now remove anything not in the printable US-ASCII range, but keep newlines
          final StringBuilder sb = new StringBuilder(numChars);
          for (int i = 0; i < numChars; i++) {
              final char c = output[i];
              // printable US-ASCII is from 32 to 126
              if ((32 <= c && c <= 126) || '\n' == c) sb.append(c);
          }
  
          return sb.toString();
      }