单元测试显示StringEscapeUtils.escapeHtml / escapeHtml4不会产生相同的结果。
试图将commons-lang(2.6)升级到commons-lang3(3.9),并在escapeHtml / escapeHtml4方法中发现奇偶校验不匹配。
for (String s : Stream.generate(()-> RandomStringUtils.random(100)).limit(100).toArray(String[]::new)) {
String oldVersion =
org.apache.commons.lang.StringEscapeUtils.escapeHtml(s);
String newVersion =
org.apache.commons.lang3.StringEscapeUtils.escapeHtml4(s);
Assertions.assertEquals(oldVersion, newVersion);
}
我希望commons-lang3 StringEscapeUtils.escapeHtml4()会产生与commons-lang StringEscapeUtils.escapeHtml()相同的结果。理所当然的是,该测试已超出整个unicode范围,但仍然...
org.opentest4j.AssertionFailedError:
Expected :靂ᬧ뒼뽼㞛⼁寺ǐ弬澳��ﮒᜑ揢䈤ꮚ耳ᣛ泐䪶��늁㠌鋊劂荃❊��단ꂎ櫼㔀䯼絹䲼뎱뽚템☉钆쪄൒䷗㪨��鑺巉Ὄ䱒헓꧿㡕퟼㦰▬䟀⨈ꕓ⇊삗Շ㘵ᐟ蚳��➺컏풎쬴徊풫ᶒ咼芸ᘞ记ᣎἪ꣏陘ґ耚䂊녊ᵙ雜
Actual :靂ᬧ뒼뽼㞛⼁寺ǐ弬澳ﮒᜑ揢䈤ꮚ耳ᣛ泐䪶늁㠌鋊劂荃❊단ꂎ櫼㔀䯼絹䲼뎱뽚템☉钆쪄䷗㪨鑺巉Ὄ䱒헓㡕㦰▬䟀⨈ꕓ⇊삗Շ㘵ᐟ蚳➺컏풎쬴徊풫ᶒ咼芸ᘞ记ᣎἪ꣏陘ґ耚䂊녊ᵙ雜
这些字符是否不再在HTML4中转义?这不取决于您的编码吗?在这方面是否有办法迫使commons-lang3表现得像commons-lang?