code: private static boolean canEncode(final CoreCharset charset, final char c, final CharsetEncoder fallback) {
          // todo add more charset tests if impacted by Android's bad perf in canEncode
          switch (charset) {
              case ascii:
                  return c < 0x80;
              case utf:
                  return true; // real is:!(Character.isLowSurrogate(c) || Character.isHighSurrogate(c)); - but already check above
              default:
                  return fallback.canEncode(c);
          }
      }
docs: /*
  Provides a fast-path for Encoder.canEncode, which drastically improves performance on Android post JellyBean.
  After KitKat, the implementation of canEncode degrades to the point of being useless. For non ASCII or UTF,
  performance may be bad. We can add more encoders for common character sets that are impacted by performance
  issues on Android if required.
  
  Benchmarks:     *
  OLD toHtml() impl v New (fastpath) in millis
  Wiki: 1895, 16
  CNN: 6378, 55
  Alterslash: 3013, 28
  Jsoup: 167, 2