【发布时间】:2012-01-16 10:01:00
【问题描述】:
Java 节点接收以 UTF-8 编码的 Erlang 字符串。它的类类型是OtpErlangString。如果我只是简单地执行.toString() 或.stringValue(),则生成的java.lang.String 的代码点无效(基本上,Erlang 字符串中的每个字节都被视为不同的字符)。
现在,我想在创建 Java 字符串时使用 new String(bytes, "UTF-8"),但如何从 OtpErlangString 获取字节?
【问题讨论】:
-
java.io.StringReader 有帮助吗?
-
我不知道怎么做。你能推荐一种使用它的方法吗?
-
我的错误,我认为 OtpErlangString 扩展了 String。
-
我不知道它是否有帮助,但是有 encode() 方法写入 OtpOutputstream,它扩展了 ByteArrayOutputStream。这个 ByteArrayOutputStream 有 toString 方法,应该可以用这个方法。
-
encode()用于将字符串转换为等效的 Erlang 外部表示。我不应该将它用于此目的。
标签: java unicode utf-8 erlang jinterface