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