我的代码利用XMLwriter和XMLObjectOutputStream处理字符串。
关键点是字符串可能包含字符零(\ 0)。如果我使用url:'<?= Router::url(array('controller' => 'Pages', 'action' => 'dropdownbox')); ?>' + id,
,则不会报告错误。
如果不使用string.replace("\0", "")
,它将报告“输出中不允许使用零字符”。
但是,我需要保留原始字符串,以便可以在下一步将其用于输出到txt文件中。在这种情况下,如何处理字符串以保持\ 0并与XMLwriter一起使用?
字符串如下:
string.replace("\0", "")
(在Notpad ++中打开显示NUL,在txt中打开仅显示NUL中的空间)
这是错误信息:
NULNULSTX &The story of Florida
此外,如果字符串不能从null终止符转义,我们是否可以找到另一种替换字符串的方法(例如char,array ...)以输出原始信息?
答案 0 :(得分:0)
而不是用空字符串替换“ \ 0”,请尝试使用转义符将其转义:
string.replace("\0", "\\0")
答案 1 :(得分:0)
我找到了解决方案,看来我们可以在 java.commons.lang3 中使用 StringEscapeUtils 。
StringEscapeUtils.escapeJava(javaString)
StringEscapeUtils.unescapeJava(StringEscapeUtils.escapeJava(javaString)
可以在不违反XML要求的情况下对字符串进行编码。