【问题标题】:Problems with the Transfer of "Umlaute" from Client to Server从客户端到服务器的“Umlaute”传输问题
【发布时间】: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) 
+ '&amp;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


    【解决方案1】:

    使用 Apache Tomcat 常见问题解答中的 simple JSP 来测试您的系统。如果它不起作用,您的配置中的某些东西就会搞砸。如果它确实有效,请使用它作为起点,在您的 JSP 中添加额外的功能,以找出哪里出了问题。

    【讨论】:

    • 很奇怪。 Test-JSP 完美运行。但是我从来没有使用过命令request.setCharacterEncoding("UTF-8"); 但这似乎不是原因。有没有它都没有变化...
    • 所以从测试 JSP 开始并逐步扩展它,直到它完成失败的 JSP 所做的事情并确定它出错的点。
    • 在我看来问题是由 JavaScript 引起的:var mydata = encodeURIComponent(document.getElementById('mydata').value); window.location.href = 'index.jsp?mydata='+mydata; 当我使用这段代码而不是常规的表单提交时,它开始把一切都搞砸了。你知道如何以及为什么吗?通常 encodeURIComponent-function 应该处理所有事情......
    【解决方案2】:

    好吧,我不想将其称为解决方案,但我必须承认它有效。 另外,我不知道如何以及为什么。

    我刚刚卸载了 NetBeans,删除了服务器并重新安装了它。我保存了旧的服务器配置,所以如果有人有兴趣解决这个问题,我可以提供......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-26
      相关资源
      最近更新 更多