在数据库中保存塞尔维亚拉丁字符



我有保存塞尔维亚拉丁字符在数据库中的问题,但只有当我保存它从我的jsf应用程序。当我直接使用SQLyog在数据库中插入一些行时,一切都很好。当我尝试从应用程序中插入一些东西而不是字符时:č, ćđ在数据库中插入问号。

另一方面,当我从数据库中读取该行时,所有内容都正确显示,没有问号。

当我尝试从应用程序中插入一些东西而不是字符时:数据库中插入问号。

换句话说,MySQL JDBC驱动程序不支持最初提交字符时使用的字符编码。当向数据库发送字符数据时,MySQL JDBC驱动程序默认使用平台默认编码,例如ISO 8859-1。您需要通过在JDBC URL中指定useUnicodecharacterEncoding参数来告诉它不要这样做。

jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8

当您使用Facelets作为视图技术时,JSF在呈现HTML内容和处理提交的参数值时已经默认使用UTF-8了。所以问题至少不在这里。

参见:

  • Unicode -如何得到正确的字符?li>MySQL Connector/J Manual - 19.3.4.4。使用字符集和Unicode

相关内容

  • 没有找到相关文章

最新更新