【发布时间】:2021-09-26 06:11:06
【问题描述】:
在用序列包装后,我正在使用 Apache POI 将双向字符串写入 MS Word 文件
aString = "\u202E" + aString + "\u202C";
文本在文件中正确呈现,当我再次检索字符串时读取正常。但是,如果我以任何方式修改文件,突然间,读取该字符串会使用 isBlank() 返回 true。
提前感谢您的任何建议/帮助!
【问题讨论】:
-
您从
Word阅读的内容到底如何?您确定您阅读了正确的文本吗?有时Word会出于非常奇怪的原因在文本运行中拆分文本。有时也会出现空文本运行。如果启用了拼写检查并且文本是Word没有为拼写检查设置的语言,那么有时每个包含字母的空格都将在单独的文本运行中。如果您随后得到一个仅包含空格的文本运行,则String.isBlank()将为真。 -
@AxelRichter,哦,嗨!是你指导我解决编码问题。我确实想到了多次运行(和段落)的可能性。但是调用 getRuns().size() 会返回 1。奇怪的是,只要我不手动修改 MS Word 文件,字符串的读取效果就非常好。一个字母和程序写的所有文本都变为空。它存在并且从文件中可见,但程序无法再读取它!
标签: java apache-poi bidi