如何理解HttpLoggingInterceptor.class中的'isPlaintext'方法?

时间:2019-04-26 03:19:24

标签: java okhttp okhttp3

我对Instant begin = Instant.now(); // do whatever... Instant end= Instant.now(); long delta = Duration.between(begin, end).toMillis(); 的定义感到困惑。我想因为Unicode几乎包含所有语言字符,所以只要在其中包含codePoint,它就是可读的。

但是在HttpLoggingInterceptor # isPlaintext(buffer)中:

Human Readable Text

如果字节包含非空白控制字符,则表明它们不可读。

这是什么原因?谢谢。

1 个答案:

答案 0 :(得分:0)

AFAI可以看到readUtf8CodePoint返回给定缓冲区的UTF-8代码点。

来自维基百科

  

UTF-8是一种可变宽度的字符编码,能够使用1到4个8位字节来编码Unicode中的所有1,112,064个有效代码点。

因此Unicode不一定只覆盖人类可读的字符。因此,UTF-8范围也具有控制字符,它们的编码范围是unicode \u0000\u001F或范围\u007F\u009F,这些都是人类无法理解的。

记住Unicode是标准的,而UTF-8是编码Unicode的方法之一。