在数据库中保存塞尔维亚拉丁字符
我在数据库中保存塞尔维亚拉丁字符时遇到问题,但只有当我从 jsf 应用程序保存它时才会出现问题。当我直接使用 SQLyog 在数据库中插入一些行时,一切都很好。当我尝试从应用程序插入某些内容而不是字符时:数据库中的 č
、ć
和 đ
会插入问号。
另一方面,当我从数据库中读取该行时,所有内容都显示正确,没有问号。
I have problem with saving serbian latin characters in database, but only when I save it from my jsf application. When I inserting some rows in database directly using SQLyog, everything is fine. When I try insert something from application instead of characters: č
, ć
and đ
in database are inserted question marks.
On the other hand, when I read that row from database everything is shown correctly, without question marks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
换句话说,MySQL JDBC 驱动程序不支持字符所在的字符编码最初提交的是.当向数据库发送字符数据时,MySQL JDBC 驱动程序默认使用平台默认编码,例如可以是 ISO 8859-1。您需要通过在 JDBC URL 中指定
useUnicode
和characterEncoding
参数来告诉它不要这样做。当您使用 Facelets 作为视图技术时,JSF 在呈现 HTML 内容和处理提交的参数值时本身已经默认为 UTF-8。所以问题至少不在那里。
另请参阅:
In other words, the MySQL JDBC driver doesn't support the character encoding in which the characters are originally been submitted with. The MySQL JDBC driver defaults to the platform default encoding when sending character data to the DB, which may be for example ISO 8859-1. You need to tell it not to do that by specifying the
useUnicode
andcharacterEncoding
parameters in the JDBC URL.When you're using Facelets as view technology, JSF defaults by itself already to UTF-8 when it comes to rendering HTML content and processing submitted parameter values. So the problem is at least not in there.
See also: