0

我在数据库中存储了一些法语内容,但它转换为?.

字符串 : médiévaux, principalement pour l’anglais et le français, 转换为médiévaux, principalement pour l??anglais et le français,

我已将 utf-8 编码应用于 jsp 页面以及 servlet。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

在 servlet 中

response.setCharacterEncoding("utf-8");

我也尝试过解码字符串

return (string != null) ? new String(string.getBytes(), UTF8_CHARSET) : null;

然后对其进行编码。

return (string != null) ? new String(string.getBytes(UTF8_CHARSET)) : null;

从 JSP 获取并将其设置在 servlet 中的代码

response.setCharacterEncoding("utf-8");
String content = request.getParameter("inputFr");
        if(content == null){
            throw new Exception("exception");
        }

        content = new String(string.getBytes(), UTF8_CHARSET);

但仍然出现在上述内容字符串中的问号。很感谢任何形式的帮助。

4

1 回答 1

0

问题是您在未编码的 URL 中发送参数。要对其进行编码,请使用 URLEncoder.encode(content, "UTF-8");. 您可以在 JSP 中将其解码为

  <%
    out.println(java.net.URLDecoder.decode(((String[])request.getParameterMap().get("inputFr"))[0], "UTF-8"));
  %>
于 2013-02-02T19:02:11.147 回答