在数据库存储emoji表情字符时,会出现乱码。网上搜索的解决方案是修改为utf8mb4编码即可解决,详情参看 http://blog.csdn.net/LuckyQueen0928/article/details/78592278
那么问题来了,在生产环境下,数据库往往很多是已经使用了多年的老项目。数据库层面的编码格式是不能随意去修改的。那么如果在不修改数据库层面的编码集的前提下,解决emoji表情的存取乱码问题呢?
只需要转换为二进制存入即可
byte[] contentBASE64Byte = new sun.misc.BASE64Decoder().decodeBuffer(comment.getContent());
String contentBASE64ByteString = new String(contentBASE64Byte, "utf16");
另外,表情字符在通过URL传递时,可以通过BASE64 编码再解码即可。