我正在使用Spring启动+ Spring Data JPA + PostgreSQL。我只是包含一些字符串的类。
例如:
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private String surname;
}
我正在创造新人:
Person person = new Person(null, "Roman", "Brzęścikiewicz");
其中包含一些波兰符号,如“ę”和“ś”。 当我将其保存到数据库时:
personRepository.save(person);
然后我留下了保存在数据库中的人,该数据库收到了ID和姓名但不是姓氏的例子:
id;name;surname
1;Roman;
但是当我的姓氏没有波兰符号时,我在数据库中得到了正确的行:
id;name;surname
1;Roman;Brzescikiewicz
我的应用程序属性:
spring.datasource.url=jdbc:postgresql://localhost:5433/db
spring.datasource.username=user
spring.datasource.password=pass
spring.datasource.driverClassName=org.postgresql.Driver
spring.jpa.hibernate.ddl-auto=validate
添加 ?了useUnicode =真放;的characterEncoding = UTF8 正如在stackoverflow上的一些问题所建议的那样无效。
有什么想法吗?
答案 0 :(得分:0)
字符编码错误。 UTF-8!= utf8
characterEncoding=UTF-8
将其添加到您的jdbc网址
jdbc:postgresql://localhost:5433/db?useUnicode=yes&characterEncoding=UTF-8
您可以阅读相同情况的示例here
答案 1 :(得分:0)
解决。
其实这是非常愚蠢的问题。我正在使用PhpPgAdmin在数据库中搜索而phppgadmin有错误没有显示波兰符号...在pgadmin4中它正确显示,如果我通过Spring JPA在休息控制器中访问数据它也正常工作。