处理UTF-8 DataString(Velocity / Struts)

时间:2009-12-01 09:03:29

标签: struts

嘿伙计们,最近,我使用Struts和Velocity框架的组合来创建一些网站,问题是当我尝试输入UTF-8日文字符时,比方说,一个字段名称,我把它的值放在了“索”,然后我点击提交(使用),数据将传递给AddForm,我有String name字段来处理name字段。问题是,收到的字符串是一些奇怪的字母而不是预期的字符串“索”,我将所有工作区设置为UTF-8,在velocity.property(input.coding / outputcoding = UTF-8)中,content-type / charset = UTF-8,但它总是返回奇怪的字符串,我可以直接设置名称字段:public void setName(String name){this.name =“index”}并确认添加工作正常,但不能正常插入要在addForm上命名字段,有人可以指出我出了什么问题吗?感谢患者阅读:D。

1 个答案:

答案 0 :(得分:1)

我明白你的问题如下,这是对的吗?

  • 您可以在客户端浏览器上正确发送和显示“索”,
  • 但是当表单被发送回服务器时,数据已损坏。

这是由于:

之间不匹配造成的
  • 编码请求的编码(如您所说的UTF-8)和
  • 服务器解码的编码(默认情况下为ISO-8859-1)。

可以通过使用Spring Framework CharacterEncodingFilter显式指定服务器端编码(上面的第2个)来解决。

(注意:像Seasar和TERASOLUNA这样的日语框架在问题上有类似的过滤器和文章。)