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