有一段时间我正在开发一个JSP系统,幸运的是我从未有过更大的问题转移“ä”,“ö”,“ü”和“ß”等“Umlaute”。 现在过了一段时间,我将我的NetBeans更新为Nightly Build 201311070001(与Tomcat 7.0.41一起),突然间一切都搞砸了...... 我不确定问题是否仅因为更新而发生,但我没有其他事件......
我的HTML / JS看起来像:
<button onclick="
alert(encodeURIComponent(document.getElementById('Comment').value));
window.location.href = '/Proj/filter/MB/CreateMB.jsp
?Num='
+ encodeURIComponent(document.getElementById('Num').value)
+ '&Comment='
+ encodeURIComponent(document.getElementById('Comment').value)">
Create New MB
</button>
要确定是否因为JavaScript而发生错误,我添加了此警报(...)。
现在我在字段中输入以下内容:
测试äöüß{çǘ]
(最后的字母不会出现在德语中,但我想测试最坏的情况) alert()返回我可能期望的东西(由于encodeURIComponent):
测试%20%C3%A4%C3%B6%C3%BC%C3%9F%20%7B%C3%A7%C7%98%5D
现在我调试服务器上的输出:
测试äöüÃ{çÇ]
很明显出现了问题......通常,JSP应该自己编写所有内容。当然这个废话直接进入数据库...
还出现了一大堆新的编码问题。在数据库中,我有正确的值:
PA-Schnur
但是我的代码
StringEscapeUtils.escapeHtml(d.getMethod())
返回
PÃ?-Schnur
到现在它起作用了,突然间行为改变了。 当然,大多数功能都源自Java-Beans,jsp文件仍然保留了它们:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
由于IDE保持相同的编码:
我只是无法弄清楚问题的来源。无论是新IDE还是在安装过程中它都可能影响了Tomcat-Server。有人做过类似的经历吗?我该怎么办呢?
答案 0 :(得分:0)
使用Apache Tomcat常见问题解答中的simple JSP来测试您的系统。如果它不起作用你的配置中的东西搞砸了。如果它确实有效,可以使用它作为起点在JSP中添加其他功能,以找出出错的地方。
答案 1 :(得分:0)
好吧,我不想把它称为解决方案,但我必须承认它有效。 此外,我不知道如何以及为什么。
我刚刚卸载了NetBeans,删除了服务器并重新安装了它。我保留了旧的服务器配置存档,所以如果有人有兴趣解决这个问题,我可以提供......