gpt4 book ai didi

java - 如何在 Velocity 上配置 UTF-8?

转载 作者:行者123 更新时间:2023-12-01 05:38:15 25 4
gpt4 key购买 nike

使用 Java、Servlet、MySQL、Tomcat 和 Velocity,采取了以下步骤:

  • 速度属性:
    • input.encoding=UTF-8
    • output.encoding=UTF-8
  • 服务器.xml
    • URIEncoding = UTF-8
  • <html><head>字符集
    • meta http-equiv="Content-Type"content="text/html;CHARSET=UTF-8"
  • eclipse 属性、项目属性、文件和编辑器编码
    • 设置所有适用于 UTF-8 的内容
  • JDBC 连接:
    • db.url=jdbc:mysql://:/?useEncoding=true&characterEncoding=UTF-8
  • java/servlet 代码:
    • request.setCharacterEncoding(UTF-8)

以上所有方法均无效。直到完成以下代码:

private String getParameter(String key) {
String param = request.getParameter(key);
if (Util.isNotEmpty(param)) {
try {
return new String(param.getBytes("8859_1"), "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return param;
}
return null;
}

上面的意思是request.setCharacterEncoding没有效果( getCharacterEncoding() 确实返回 UTF-8 );知道请求包装器被包装在 ThreadLocal 中对象。

这是怎么造成的,如何解决?

最佳答案

为了正确解释参数,tomcat 需要将 URL 解析为 UTF-8。在 server.xml 连接器属性中设置此项,例如与:

<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="UTF-8"/>

关于java - 如何在 Velocity 上配置 UTF-8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7805917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com