unicode - Java 8 处理与 Java 7 不同的无效 UTF-8 编码....?

标签 unicode java-8 java-7

log.info(new String(new byte[]{-7, 'a'}, "UTF-8").length());

Oracle Java 1.8.0_60 导致打印输出为“2”,1.7.0_79 为“1”。

?

最佳答案

您传递的是无效的 UTF-8 序列。来自docs

The behavior of this constructor when the given bytes are not valid in the given charset is unspecified.

因此在正确的实现中,返回的字符串也可能是 "Hello world!"

关于unicode - Java 8 处理与 Java 7 不同的无效 UTF-8 编码....?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32512359/

相关文章:

java - Wicket ajax 调用不会呈现我的新组件

java - 如何使用 Java 可选运算符映射多个子类型

java - 尝试 Unicode 字符集

python - input() 和文字 unicode 解析

java - Hibernate + JPA + jTDS + SQL Server = Unicode 问题

java - 加载 webstart 应用程序时有关缺少 Codebase 属性的错误消息

android - Android 是否计划支持 Java7?

java - ™ 字符未被 GetStringChars() 正确翻译

java - 如何使用 java8 lambda 表达式抛出自定义检查异常?

java - 更新 JDK 版本以匹配 JRE?