Tapestry中的java表单编码
我对Tapestry表单有问题。 我的XML数据库对编码非常敏感,需要utf-8
当我在表单中放入字符“a”时,tapestry接收到“Ó”,我的核心得到一个错误:3字节UTF-8序列的无效字节2
我在eclipse中没有tomcat的本地默认配置问题
但无论tomcat的配置如何,我认为我的应用程序必须自己进行转换
所以我试着:
- charset=“utf-8”格式=>;失败
- ^AppModule=>;失败
每个页面的字符集都是utf-8
那么,在使用java字符集编码器之前,我可以做些什么呢
谢谢你帮助我。:)
# 1 楼答案
我不认为你的申请有什么问题。默认情况下,Tapestry在UTF-8中执行所有操作;这个维基页面已经过时了(指的是5.0.5测试版,在该测试版中,上传文件的表单仍然没有正确使用UTF-8)
你是说你在当地没有问题。你试过在不同的服务器上运行吗?如果没有问题,服务器上操作系统的代码页设置可能有问题
下面是纯粹的轶事证据
我曾经在生产服务器(运行SUSE Linux)上的Tapestry 5应用程序中遇到过类似的字符集问题,我无法在任何其他服务器上重现。应用程序、Tomcat服务器和系统的代码页设置似乎都很好,但POST数据最终会被解码为ISO 8859-1,而不是应用程序中的UTF-8。在问题出现之前,该应用已经在该服务器上运行了一年——可能是通过操作系统的更新
在一天毫无进展之后,我们重新安装了整个服务器操作系统,一切又恢复了正常
# 2 楼答案
问题在于启动到windows shell中的JVM的默认字符集。 它导致FileWriter出现问题,然后在控制台中显示坏字符:)