将Erlang UTF-8编码的字符串转换为java.lang.String
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了将Erlang UTF-8编码的字符串转换为java.lang.String,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1308字,纯文字阅读大概需要2分钟。
内容图文
![将Erlang UTF-8编码的字符串转换为java.lang.String](/upload/InfoBanner/zyjiaocheng/769/2f3b08e242194c7e95c9d9a6ed83d1bd.jpg)
Java节点接收以UTF-8编码的Erlang字符串.它的类类型是OtpErlangString.如果我只是执行.toString()或.stringValue(),则生成的java.lang.String具有无效的代码点(基本上,Erlang字符串中的每个字节都被视为不同的字符).
现在,我想在创建Java String时使用新的String(字节,“UTF-8”),但是如何从OtpErlangString中获取字节?
解决方法:
当您使用UTF8字符时,在Java端获得OtpErlangString是很奇怪的.如果我只使用ASCII字符,我会得到这种类型的对象.如果我添加至少一个UTF8字符,结果类型是OtpErlangList(这是逻辑的,因为字符串只是Erlang中的int列表)然后我可以使用它的stringValue()方法.这样在发送字符串形式之后Erlang就像:
(waco@host)8> {proc, java1@host} ! "??????ó?ńa".
[261,263,347,378,380,281,243,322,324,97]
在Java节点上,我收到并打印它:
OtpErlangList l = (OtpErlangList) mbox.receive();
System.out.println(l.stringValue());
输出是正确的:
??????ó?ńa
但是,如果在您的情况下不是这种情况,您可以尝试通过例如强制OtpErlangList表示来解决它.添加一个空元组作为字符串列表的第一个元素:
(waco@wborowiec)11> {proc, java1@wborowiec} ! [{}] ++ "??????ó?ńa".
[{},261,263,347,378,380,281,243,322,324,97]
在Java方面,例如:
OtpErlangList l = (OtpErlangList) mbox.receive();
// get rid of an extra tuple
OtpErlangObject[] strArr = Arrays.copyOfRange(l.elements(), 1, l.elements().length);
OtpErlangList l2 = new OtpErlangList(strArr);
System.out.println(l2.stringValue());
内容总结
以上是互联网集市为您收集整理的将Erlang UTF-8编码的字符串转换为java.lang.String全部内容,希望文章能够帮你解决将Erlang UTF-8编码的字符串转换为java.lang.String所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。