【发布时间】:2017-03-31 09:57:59
【问题描述】:
在我的 HBase 表中,有一些编码的表情符号,如 \xF0\x9F\x8C\x8F 和 \xE2\x9A\xBE。我正在尝试使用 Bytes.toString() 来解码它们。但是,这种方法使用 utf-8,它只能解码像 \xE2\x9A\xBE 这样的三字节代码,而像 \xF0\x9F\x8C\x8F 这样的四字节代码似乎是一个问号(见下文)。那么如何将四个字节的代码解码为表情符号并打印出来呢?有人有想法吗?提前致谢!
例子:
很抱歉,我忘记提及我正在使用 servlet 查询 HBase 并将内容写入响应。
【问题讨论】:
-
您确定编码是 UTF-8 吗?如果是这样,那么您的转换是正确的,但您的操作系统可能不知道如何表示您的表情符号背后的字符
-
new String(theBytes, theCharset)? -
你问的是我使用的方法 - Bytes.toString() 吗?官方文档显示此方法使用utf-8作为默认编码,无法更改其编码....我可以查看hbase,发现表情符号以unicode编码存储,如\xF0\x9F \x8C\x8F.
标签: java database unicode encoding hbase