【发布时间】:2013-11-17 20:47:58
【问题描述】:
现在我正在开发一个 JSP 系统,幸运的是我在转移“ä”、“ö”、“ü”和“ß”等“元音变音”时从未遇到过任何更大的问题。 现在过了一会儿,我将我的 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(...)。
现在我在字段中输入以下内容:
测试 äöüß {çǘ]
(最后一个字母不会出现在德语中,但我想测试最坏的情况) alert() 返回了我可能预料到的东西(由于 encodeURIComponent):
测试%20%C3%A4%C3%B6%C3%BC%C3%9F%20%7B%C3%A7%C7%98%5D
现在我在服务器上调试输出:
测试 äöüà {çÇ]
很明显出了点问题... 通常 JSP 应该自己对所有内容进行编码。当然这种废话直接进入数据库...
一大堆新的编码问题也出现了。在数据库中我有正确的值:
帕-施努尔
但我的代码
StringEscapeUtils.escapeHtml(d.getMethod())
返回
PÃ?-Schnur
现在它起作用了,突然行为改变了。 当然,大部分功能都来源于 Java-Beans,jsp 文件仍然保留它们的:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
由于 IDE 保持相同的编码:
我只是无法弄清楚问题出在哪里。它要么是新的 IDE,要么在安装过程中可能影响了 Tomcat 服务器。有人有过类似的经历吗?我该怎么办?
【问题讨论】:
标签: javascript jsp netbeans encoding tomcat7