[英]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.