gpt4 book ai didi

java - 为什么 Unicode 字符在数据库中正确显示,但显示为?当通过 Hibernate 在 Java 中打印时?

转载 作者:行者123 更新时间:2023-11-29 03:14:37 25 4
gpt4 key购买 nike

我正在编写一个网络应用程序,并使用 Hibernate 3.5 与 MySQL 交互。使用“desukutoppu ინგლისური”作为我的测试字符串,我可以输入该字符串并查看它是否已正确保存到数据库中。但是,当我稍后从数据库中提取值并作为字符串打印到控制台时,我看到“????????????????”。如果我使用

new OutputStreamWriter(System.out,"UTF-8");

然后我得到“„Éá„Çπ„ÇØ„Éà„ÉÉ„Éó·Éò·Éú·Éí·Éö·Éò·É°·É£·É†·Éò”。为什么我看不到原始字符串?

这些是我的 hibernate.cfg.xml 设置:

<property name="hibernate.connection.useUnicode">
true
</property>
<property name="hibernate.connection.characterEncoding">
UTF-8
</property>
<property name="hibernate.connection.charSet">
UTF-8
</property>

这是我的数据库连接字符串:

hibernate.connection.url = jdbc:mysql://localhost/mydatabase?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF-8

最佳答案

这是未配置为使用 UTF-8显示 它们的控制台。如果是 Eclipse,您可以通过Window > Preferences > General > Workspace > Text File Encoding 配置它的编码。它应该设置为 UTF-8

new OutputStreamWriter(System.out,"UTF-8"); 仅指示 OutputStreamWriter 使用哪种编码将写入的字符转换为字节。它不会指示 System.out 控制台使用哪种编码将它们从字节转换回字符以显示它们。

关于java - 为什么 Unicode 字符在数据库中正确显示,但显示为?当通过 Hibernate 在 Java 中打印时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2604588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com