JSP多语言页面日文显示为问号,需做什么配置才能正常显示?
问题根源
你的JSP配置的HTTP响应内容编码不支持日文字符:JSP首行page指令中contentType属性指定了charset=ISO-8859-1,该编码仅覆盖西欧字符集,无法兼容日文等非拉丁字符。且HTTP响应头的Content-Type优先级高于HTML内部的meta charset配置,因此即使你在head中声明了utf-8,浏览器依然会按照ISO-8859-1解析页面内容,最终导致日文显示为问号。
解决方案
- 修改JSP首行page指令配置,将响应编码改为UTF-8:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
- 调整JSTL资源包读取配置,指定UTF-8编码读取多语言资源,避免资源文件读取阶段就出现乱码:
<fmt:setBundle basename="resources.mensagens" encoding="UTF-8" />
- 补充检查(若修改后仍异常):
确认你的日文资源文件mensagens_ja.properties本身存储编码为UTF-8;如果使用Java 8及更早版本,也可通过JDK自带的native2ascii工具将日文内容转换为Unicode编码后存入资源文件,规避编码兼容问题。
- 补充检查(若修改后仍异常):
内容的提问来源于stack exchange,提问作者garotadosprog
相关产品推荐
相关产品推荐

