无法在 MySQL DB Liferay 中保存笑脸



我正在使用 liferay 6.2 mySQL- 5.5.52 。在自定义Portlet中,我暴露了Android&的一些Web服务。iOS应用程序,在某些API中它们是字符串参数&如果我们在该参数中发送微笑,则会引发异常: java.sql.sqlexception:不正确的字符串值:' xf0 x9f x98 x98 x90 x90 xf0 x9f ...在第1行上,我还尝试将数据库整理更改为 utf8MB4 -DEFAULT COLATION ,在这种情况下,我可以保存此☺,但不能保存其他问题,但我正在尝试找出什么是问题。

由于您没有提供有关您确切更改的详细信息,因此很难确保此答案相关。以防万一您不这样做,请确保更改字符集,而不仅仅是 Collation

字符集是一组符号和编码。整理是一组比较字符集中字符的规则。

还仔细检查您的数据库连接字符串。它可以强制执行与数据库/表指定的编码不同的编码。

问题可以在任何一层 - 绝对与编码有关(正如米伦在答案中所描述的那样)。您可能会从Web服务中获得非法编码(或解码)内容,在数据库连接(客户端)中进行操作或在数据库中编码错误。Liferay的文档仅提及数据库的create database dbname character set utf8;

易于测试和斑点的UTF -8字符的主要来源之一是http://fliptitle.com-一旦您喜欢的测试文本正确正确,您可能会正确编码正确。如果没有:检查您的字体,因为它们没有使用的所有字符,或者您在某个地方编码错误。

最新更新