1
new Trainingcamp(name:"Höhentraining", region:"Alpen").save()
tr1 = Trainingcamp.findByName("Höhentraining")
tr2 = Trainingcamp.findByRegion("Alpen")
println("Tr1: " + tr1?.name)
println("Tr2: " + tr2?.name)

控制台上的输出是:

Tr1: 
Tr2: H?hentraining

所以在我看来,通过保存域对象会发生一些事情,用问号“?”替换特殊字符“ö”。我该如何摆脱这个问题?先谢谢了!

使用 Grails 1.3.7

__edit1:我使用 prod run-app 启动了应用程序,然后检查了 pordDb.log。我找到了以下插入:

INSERT INTO TRAININGCAMP VALUES('H\ufffdhentraining','Alpen')

无论我写一个“ö”或“ü”或“ä”它总是用“\ufffd”替换它所以,有什么建议可以解决这个问题吗?

__edit2:新见解:仅当我将域保存在 BootStrap.groovy 中时才会出现问题。通过将域保存在控制器中,控制台上的输出与预期的一样:

Tr2: Höhentraining
4

0 回答 0