在我的HBase表中,有一些编码的表情符号,例如\ xF0 \ x9F \ x8C \ x8F和\ xE2 \ x9A \ xBE。我正在尝试使用Bytes.toString()对其进行解码。但是,此方法使用utf-8,它只能解码3个字节的代码,如\ xE2 \ x9A \ xBE,而4个字节的代码,如\ xF0 \ x9F \ x8C \ x8F似乎是一个问号(请参阅下文)。那么,如何解码四个字节的代码以生成表情符号并打印出来呢?有人有主意吗?提前致谢!
当我读取包含以下字符“”(F09F8C8F或U + 1F30F)的文件,并且该文件具有指示UTF-8编码的BOM时,我可以通过使用将其正确转换为UTF-8
byte[] encoded = Files.readAllBytes(selectedFile.toPath());
String fileContents = new String(encoded, StandardCharsets.UTF_8);
结果字符串已正确转换并正确显示在我的Java Swing应用程序中。但是,如果我将相同的String打印到控制台,则会得到一个方框的问号而不是符号。因此,字符已正确转换,但只是您的输出弄乱了字符。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。