AEM/CQ5 请求参数不是 UTF-8
AEM/CQ5 Request Parameter not UTF-8
AEM 6.0 SP1 和搜索组件存在一个小问题。如果搜索像 "Français"
这样的法语单词,"ç"
会变得一团糟
查询字符串类似于 ?q=Français
在 JSP 方面,request.getCharacterEncoding()
returns ISO-8859-1 而不是像 UTF-8我们需要。
我知道在 tomcat 下,您可以在连接器级别更改 URIEncoding
。
但是对于AEM/CQ实例直接运行本身来说,没有这样的事情。
有人想通了吗?
For 5.6.1 : 默认编码可以在 Apache Sling Main Servlet 的配置中设置。在配置管理器中
(:/system/console/configMgr) 查找 Apache Sling Main Servlet 并配置 Default Parameter Encoding 属性.
对于 6.0(学分 - Francois Cournoyer):配置已移至 Apache Sling 请求参数处理
将临时文件位置配置为指向绝对路径,以防在保存配置时出错
CQ 中的表单总是有一个隐藏字段,其字符集设置为 UTF-8 或您 HTML:
的字符集
<input type="hidden" name="_charset_" value="UTF-8"/>
这将确保在 servlet 检索 post 时正确编码。
需要添加默认字符集更改作为响应的一部分 header。
下面是详细过程
http://localhost:4502/system/console/configMgr
-->Apache Sling Main Servlet
--> Additional response headers add the below entry
Content-Type=text/html;charset=utf-8
AEM 6.0 SP1 和搜索组件存在一个小问题。如果搜索像 "Français"
这样的法语单词,"ç"
会变得一团糟
查询字符串类似于 ?q=Français
在 JSP 方面,request.getCharacterEncoding()
returns ISO-8859-1 而不是像 UTF-8我们需要。
我知道在 tomcat 下,您可以在连接器级别更改 URIEncoding
。
但是对于AEM/CQ实例直接运行本身来说,没有这样的事情。 有人想通了吗?
For 5.6.1 : 默认编码可以在 Apache Sling Main Servlet 的配置中设置。在配置管理器中
(
对于 6.0(学分 - Francois Cournoyer):配置已移至 Apache Sling 请求参数处理
将临时文件位置配置为指向绝对路径,以防在保存配置时出错
CQ 中的表单总是有一个隐藏字段,其字符集设置为 UTF-8 或您 HTML:
的字符集<input type="hidden" name="_charset_" value="UTF-8"/>
这将确保在 servlet 检索 post 时正确编码。
需要添加默认字符集更改作为响应的一部分 header。 下面是详细过程
http://localhost:4502/system/console/configMgr
-->Apache Sling Main Servlet
--> Additional response headers add the below entry
Content-Type=text/html;charset=utf-8