我有一个用户通常会复制并粘贴到的表单。当副本中有撇号并且过去时,它们都会变成问号。例如,有人刚刚复制并粘贴了本文的标题:
http://brooklynheightsblog.com/archives/47796
当用户以常规形式复制和粘贴帖子时,会出现此问题。但是,我也有通过JSON提交的ajax,当这样做时,撇号可以从相同的精确复制和粘贴完成。此方法使用Jackson json消息转换器。
此外,我检查了编码的表单数据,看起来很好:
Atlantic+Avenue%E2%80%99s+Sahadi%E2%80%99s+Preps+For+Wall-To-Wall+%28To+Wall%29+Expansion
我尝试使用在线解码器,文字解码得很好。
任何人都知道表单提交会导致这种情况发生了什么?
谢谢!
答案 0 :(得分:2)
这是因为复制的撇号不是标准的ascii。这是一个特殊的符号,像文字一样使用程序来使撇号看起来更好。您需要将这些符号转换为普通符号。可以在浏览器或服务器上执行此操作。
这可能是您的解决方案:Converting MS word quotes and apostrophes
答案 1 :(得分:1)
您需要在web.xml中包含过滤器
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
答案 2 :(得分:0)
您是否尝试过使用这些属性?
<form method="post" enctype="application/x-www-form-urlencoded" accept-charset="UTF-8" ... />