【发布时间】:2009-09-08 09:40:02
【问题描述】:
我正在通过 Python 与 Java 应用程序交互。我需要能够构造包含 UTF-8 字符串的字节序列。 Java 在DataInputStream.readUTF() 中使用修改后的 UTF-8 编码,Python 不支持 (yet at least)
谁能指出我在 Python 中构造 Java 修改的 UTF-8 字符串的正确方向?
更新 #1:要了解更多关于 Java 修改的 UTF-8 的信息,请查看第 550 行的 DataInput 接口中的 readUTF() 方法here 或here in the Java SE docs。
更新 #2:我正在尝试与第三方 JBoss Web 应用程序交互,该应用程序使用这种修改后的 UTF-8 格式通过调用 DataInputStream.readUTF() 来通过 POST 请求读取字符串(对于普通 Java UTF 的任何混淆,我们深表歉意-8 字符串操作)。
【问题讨论】:
-
“修改后的 UTF-8”是什么意思?据我所知,如果您要求 Java 将其编码为 UTF-8,它会使用完全标准的 UTF-8。请注意,Java 的原生字符串格式是 UTF-16。
-
嗨,乔恩,我在 DataInput 接口中添加了一个指向 readUTF 方法的链接,其中提到了一点。我会尝试挖掘更多信息。
-
维基百科上有一些信息:en.wikipedia.org/wiki/UTF-8#Modified_UTF-8(所以,序列化、一些 JNI 和类内字符串常量)。
-
我建议修改 Java 应用程序以使用真正的 UTF-8。
-
感谢 McDowell,我正在尝试与 JBoss Web 应用程序交互,该应用程序使用这种修改后的 utf8 格式通过 POST 请求读取字符串。