作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了一个过滤器问题,该过滤器将我上传的 html 内容的某些字符转换为乱码。这是在升级到该过滤器的最新版本时发生的。
我想添加一个单元测试用例来检查过滤后的内容是否有乱码。
我用谷歌搜索了一个解决方案。我找不到。
有办法吗?
最佳答案
在 x 中有一个“乱码”字符,它不是乱码:它是 U+FFFD 替换字符字符,如果 SW 无法解码某些 UTF-8(或任何其他)编码,则将由 SW 使用。要进行检查,请使用如下内容:
String x = "蛯" + (char)0xFFFD + "閠test";
System.out.println( "cpc=" + x.codePointCount(0,x.length()) );
for( int i = 0; i < x.length(); ++i ){
if( (int)x.codePointAt(i) == 0xfffD ){
System.out.println( "oops" );
} else {
System.out.println( x.codePointAt(i) );
}
}
所有常用的字符串测试方法都有效:
String gc = "" + (char)0xfffD;
if( x.contains( gc ) ){
System.out.println( "contains" );
}
if( x.matches( ".*"+gc+".*" ) ){
System.out.println( "matches" );
}
if( x.indexOf( gc ) > -1 ){
System.out.println( "indexOf" );
}
如果您使用的是某些 Unix 系统,即使这样也可以:
grep '�' garbled.data
关于java - 如何检查文件/内容是否有乱码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27855599/
我是一名优秀的程序员,十分优秀!