gpt4 book ai didi

java - 当从 MS Word 复制的文本通过 HTML 表单发送到 Java 时,出现奇怪的字符并且文本长度增加

转载 作者:行者123 更新时间:2023-12-02 08:01:02 24 4
gpt4 key购买 nike

我从 MS Word 复制了以下文本并将其粘贴到 HTML 输入文本字段

Test…. !! Wow

它在浏览器上正确显示,长度也是 13 个字符。但是当我提交表单时,Java代码收到的文本是

Testâ¦. !! Wow

计数为 15。我在 Javascript 和 Java 代码中检查了最大文本字段长度。由于 Java 代码中文本的长度会增加,因此文本可能在 Javascript 中有效,但在 Java 代码中失败。我希望在这两种情况下具有相同的格式(或至少相同的长度,以便验证一致)

最佳答案

我们在这里看到的“â”是由三个字节0xE2 0x80 0xA6产生的,它们构成了“...”的UTF-8编码表示U+2026 HORIZONTAL ELLIPSIS 。当解释为 Latin-1(ISO-8859-1 或 windows-1252)编码时,字节 0xE2 为“â”,类似地 0xA6 为“¡”。 0x80 字节发生了什么还不清楚,但也许它已被过滤掉,因为在 ISO-8859-1 中它是一个控制字符。

因此,显然表单数据以 UTF-8 编码发送(这通常取决于包含表单的页面的编码,尽管也可以使用 accept-charset 标记中的 <form> 属性进行设置)。这一切都很好,因为 UTF-8 是确保所有字符正确发送的唯一方法。

所以问题出在接收方。 Java 代码读取数据时似乎假设数据采用 8 位编码(一个字节 = 一个字符),但事实并非如此。

(文本中包含U+2026的原因可能是Word中的自动更正:默认情况下,Word将键盘输入中的三个连续句点“...”转换为一个字符,即省略号“...”。)

关于java - 当从 MS Word 复制的文本通过 HTML 表单发送到 Java 时,出现奇怪的字符并且文本长度增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8895637/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com