簡體   English   中英

Apache POI 異常空白(已解決:\  不間斷空格)

[英]Apache POI Anomalous Whitespace (Resolved: \u00A0 non-breaking space)

編輯:已解決的答案:是 00a0 不間斷空格,而不是 c0a0 不間斷空格。

在使用 Apache POI 從 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));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM