gpt4 book ai didi

java - 如何检查文件/内容是否有乱码?

转载 作者:行者123 更新时间:2023-12-01 12:03:09 25 4
gpt4 key购买 nike

我遇到了一个过滤器问题,该过滤器将我上传的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com