根据标题,我遇到了 UTF-8 字符集编码问题。我看到
?
而不是波兰语的特殊字符。
我会尽力解释我的问题。
我有一个带有以下代码的页面 JSP:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
我有一个Ajax调用是这样写的:
$.ajax({
url :urlToPrepend + "url/load.action",
type : "post",
dataType : "json",
async:false,
data :
{
repeat: 0,
changedLayoutName:activeLayoutRS,
sapNamesWithConfig:selectedColumnSAPNamesWithConfigRS,
columnNamesWithConfig:selectedColumnNamesWithConfigRS,
sortBy:sortByWithConfigRS,
extractConfig:extractConfigRS,
savedParams:savedParams
},
success : function(data)
{
data.columNames
data.columnNames
包含来自 Java Action
的带有波兰语标签的列表。如果我用 Firefox 放置调试点,我会看到字符串有标记问题而不是正确的重音。
在Java中
Action
我尝试放置这些代码行:
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
我也尝试输入
struts.properties
参数:
struts.i18n.encoding=UTF-8
我尝试在
param
中添加 struts.xml
编码以执行特定操作。
没有任何效果,你有解决方案的想法吗?
更新:
columnNames
数据是 ArrayList
:
columnNames = new ArrayList<String>();
充满
getText()
方法:
columnNames.add(getText(columnData.getValue())))
其中
columnData.getValue()
是属性文件的键(例如:catalogue=Rodzina produkt\u00f3w
)。如果我在调试中进行表达式测试,我也会看到编码的标签 Rodzina produktów
但在 json 响应中我看到了这个:
"columnNames":["","","Pojazd","Rodzina produkt�w"
将
ArrayList
放入 jsonData
,代码如下:
jsonData.put("columnNames", columnNames);
更新2:
我发现我们正在使用一个名为 GZIP 的插件来执行某些操作。对于这个,
struts.xml
文件中的结果成功部分是这样定义的:
<result name="success" type="json">
<param name="excludeNullProperties">true</param>
<param name="root">jsonData</param>
<param name="enableGZIP">true</param>
</result>
你知道它是如何运作的吗?
更新3:
删除
enableGZIP
一切都按预期工作,所以剩下的唯一问题是关于这个特定的插件。