Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Apache POI异常空白(已解决:\u00A0非中断空格)_Java_Apache Poi - Fatal编程技术网

Java Apache POI异常空白(已解决:\u00A0非中断空格)

Java Apache POI异常空白(已解决:\u00A0非中断空格),java,apache-poi,Java,Apache Poi,编辑:已解决的答案:是00a0非中断空间,而不是c0a0非中断空间 在使用ApachePOI将docx转换为纯文本,然后将纯文本读入Java并尝试对其进行解析之后,我遇到了以下问题 输出: " " first characterequals SPACE OR TAB false [B@5e481248 [B@66d3c617 ARRAYTOSTRING SPACE: [32] ARRAYTOSTRING ?????: [-62, -96] 代码: System.out.println("\t

编辑:已解决的答案:是00a0非中断空间,而不是c0a0非中断空间

在使用ApachePOI将docx转换为纯文本,然后将纯文本读入Java并尝试对其进行解析之后,我遇到了以下问题

输出:

" "
first characterequals SPACE OR TAB 
false
[B@5e481248
[B@66d3c617
ARRAYTOSTRING SPACE: [32]
ARRAYTOSTRING ?????: [-62, -96]
代码:

System.out.println("\t\"" + line.substring(0,1) + "\"\n\tfirst characterequals SPACE OR TAB \n\t" + (line.substring(0,1).equals(" ") 
                        || line.substring(0,1).equals("\t") ));
System.out.println(line.substring(0,1).getBytes());
System.out.println(" ".getBytes());
System.out.println("ARRAYTOSTRING SPACE: " + Arrays.toString(" ".getBytes()));
System.out.println("ARRAYTOSTRING ?????: " + Arrays.toString(line.substring(0,1).getBytes()));
String.trim()无法摆脱它
String.replaceAll(“\s”,”)不会删除它


我正试图解析一个巨大的材料文档,这将成为一个主要障碍。我不知道发生了什么,也不知道如何与之交互,有人能解释一下这里发生了什么吗?

这转换成带有十六进制代码的字节
c2 a0
,根据UTF-8编码的非中断空间。请注意,这不是一个真正的空格,\s将与它不匹配。

这对我很有用:

 String valor = org.apache.commons.lang3.StringUtils.normalizeSpace(java.text.Normalizer.normalize(valor, java.text.Normalizer.Form.NFD));

您真的应该至少添加一段提取代码。我不确定提取代码在上下文之外是否有意义,它只是逐行拉动,而这个调试代码段正在复制循环检查,以使其可见实际比较的内容。1)是否有一个易于引用的源/字符集显示为空白,但与之不匹配(或包含这些字符的正则表达式)2)这个字符是否有转义序列或任何可以匹配的简单序列?我使用了(尽管它包含许多其他结果)。转义序列应该是(毫不奇怪的)
\u{c2a0}
。是否有其他我可能遇到的假空白,或者这是异常值,请看amp what页面,它列出了一些。值得注意的非挡泥板包括\u200B、零宽度空白以及\u2002a到\u200a(各种空白宽度)和\u200F(这是一个狭窄的不间断空间)。非常感谢,这非常有用。