是否可以像这样在 XML 中保存 ASCII NUL 字符 <data>*NUL**NUL**NUL*</data>
?
我知道我可以使用 System.out.println("\0")
在 Java 中显示该值我想知道 XML 是否可以处理这个值。
*我的目标是使用 Java 从 XML 中获取“\0\0\0”
提前谢谢您!
最佳答案
由 specs for 1.0官方不会允许这样做。
ASCII NUL 又名 '\0'
又名 \u0000
是 java 中的普通字符。然而,在 C/C++ 中,它用作字符串终止符。因此,当 C 软件处理 XML 时,它可能会过早地检测到 XML 文本的结尾。
对于这个java也有一个解决方案,即当XML以UTF-8编码写入时,Unicode值> 127被编码为第8位1的多字节序列。DataOutputStream.writeUTF8
写入'\0` 也作为多字节序列。所以读取正常,解码成功。
- 这并不是完全严格的 UTF-8,需要最短编码。
- 我仍然不确定 C 中处理 XML DOM 的错误。
所以这不是一个好主意。
另请注意,二进制数据应转换为 Base64 ASCII。由于 UTF-8 不适合二进制数据。
关于java - 在 XML 中存储值 NUL (ASCII),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38012034/