- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 HttpServletRequest,它从 HTML - textarea 接收“String myString”。我遇到的问题是,每次我在文本区域中写入文本时,对于每一行,“String myString”都会收到一个“\r\n”,而不仅仅是一个“\n”。请参阅下面的代码。
编辑:我在 HTML 文件中包含了示例函数 readText()。在那里,数据变量像“\n”一样获得新行。只有当它从 HttpServletRequest 接收到它时,它才会变成“\r\n”。问题是我真的需要它只是“\n”,因为我不应该得到比原始文本更多的字节。
我该如何解决这个问题?是因为 HTML header 的字符集 UTF-8 吗?
非常感谢,
MyServlet.html
<meta http-equiv="content-type" content="text/javascript; charset=UTF-8">
// [...]
<form action="servlet" method="POST" name="formIn">
<textarea name="originalScript" COLS=50 ROWS=25></textarea>
</form>
<script type="text/javascript" charset="UTF-8">
function readText() {
var s = document.formIn.originalScript.value;
var data = (s + "").split("");
};
</script>
MyServlet.java
public class MyServlet extends HttpServlet
{
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
{
String myString=req.getParameter("originalScript");
}
}
最佳答案
这与使用的字符编码无关。这取决于所使用的客户端平台。当客户端使用 Windows 操作系统时,则每个换行符由 \r\n
表示(CR+LF、回车和换行)。当客户端使用基于 Unix 的操作系统(如 Linux、Max OS X、FreeBSD、BeOS 等)时,每个换行符都由 \n
表示(LF,换行)。还有一些平台使用 \r
或 \n\r
,例如 Commodore、Apple II、Acorn 等,但这些平台被认为是古老的,现在可能不再使用了。
请注意 \n
在 Windows 中显示为完全有值(value)的换行符,并且 \r\n
在 Unix 中也应该作为换行符正常显示。 Windows 使用 \r\n
仅仅是由于历史原因,Windows 仍然使用它是由于向后兼容的原因。
作为 Java Web 开发人员,您不一定需要担心这一点。服务器只是准确地检索客户端发送给它的数据。重新显示客户端数据时,这两种换行形式在大多数(如果不是所有)现代平台上都应该可以正常显示。
如果您遇到问题,那么您可能做事的方式不对。例如,也许您正在拆分 \n
只是为了获得导致 \r
的行数组未受影响。在这种情况下,您最好使用 BufferedReader
相反,它将同时处理 \n
和 \r\n
在 readLine()
中透明方法。
例如
BufferedReader reader = new BufferedReader(new StringReader(string));
List<String> lines = new ArrayList<String>();
for (String line = null; (line = reader.readLine()) != null;) {
lines.add(line);
}
// ...
或者当您要替换字符串时 \n
通过 <br/>
要让换行符显示在 HTML 标记中,那么您还可以考虑使用 CSS white-space: pre;
而不是在包含文本的父 HTML 元素上。
不相关具体问题,你的<meta>
标记对于 HTML 页面无效。应该是text/html
.此外,当页面由 HTTP 请求提供服务时,Content-Type
响应 header 将覆盖任何<meta http-equiv="content-type">
. <meta>
标签仅在从本地磁盘文件系统查看页面时使用。要了解有关字符编码的更多信息,请参阅 this article (同样,这与您的具体问题无关)。
关于java - HttpServletRequest.getParameter() 接收 "\r\n"用于 textarea 字段中的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9560454/
我知道如何在简单的html文本框中删除文本,但是html textareas似乎要复杂得多。而不是value属性,而是将文本放置在之间: . 这就是为什么我在制作onFocus和onBlur
这个问题在这里已经有了答案: text from one textarea should get copy to another textarea and original textarea sh
我实现了一个 在 Elm 中,选项卡缩进和取消缩进,而不是将焦点转移到另一个 HTML 元素。效果很好,除了取消缩进有时会导致选择消失!如果我选择第 5 个字符到第 12 个字符,我按 shift-t
是否可以更改 TextArea 的字体?我需要一个固定宽度的字体来显示一些原始数据,这些数据被格式化为在控制台的列中显示。 最佳答案 您可以使用 CSS 来实现,只需为您的应用程序创建一个主题并添加以
换行符或 pharagraph 在 textarea 输出中不起作用?例如,我在 textarea 中为 pharagraph 使用 enter 但在输出中不起作用?我怎样才能做到这一点? $("#s
这个问题在这里已经有了答案: How to calculate the pixel width of a String in JavaFX? (4 个回答) 6年前关闭。 如何计算 TextArea
我正在尝试使用两个不同的 textarea s 显示相同的代码,但有一个母版和另一个副本。在副本textarea ,我想强调更改,类似于 GitHub 在我们进行一些更改时提供的内容。 我想知道这是否
我需要允许用户突出显示文本(用鼠标选择一个范围),然后我想让他们能够通过下拉右键菜单将某些设置应用于该文本。 我知道后半部分。但是如何获取从 JavafX 的文本区域中选择的文本字符串? 另外,我可以
我使用 TinyMCE。 如果我在我的 textarea(编辑器)中插入另一个 texarea,tinymce 认为这个的结束标记是相关的,所以他关闭了编辑器。所有代码都可以在编辑器之外找到... 你
假设我有两个文本区域... 文本区域 1 文本区域 2 Hi There. 我希望能够将我在文本区域一中输入的文本添加到文本区域二中的文本之后。例如:如果我写“我的名字是乔”。在文本区域一中,它将同
我通过点击一个按钮来实现这个 Bootstrap Modal。但是在点击按钮时,模态出现在屏幕上,除了文本区域字段之外的每个字段都正确显示,按钮代码和文件上传代码在它下面,正在进入文本区域,为什么会这
现在我在获取值时遇到了问题 ~ 我正在执行一个功能,当我单击一个按钮时,它会显示一个模式,并且在其中有一个文本区域。将所有内容写入其中后,单击“确定”按钮,它将使用您编写的文本创建一个新的文本区域。你
我有一个呈现文本区域字段的 HTML 模板和 CSS,但是当单击该字段时,光标从文本区域的中间开始,而不是我期望的从左上角开始。 这不会出现在 IE 中,但会出现在 Chrome 和 FF 中。我还得
我有一个在页面上运行的 TinyMCE 实例,它使我能够编辑现有帖子。我查询数据库,并填充变量 $content与存储的文本。然后我有以下 HTML: Content: " > TinyMCE 显示为
每当有人在 textarea 中按 Enter 键时,我都会调用一个函数.现在我想禁用 new line或 break按下回车键时。 所以new line按下 shift+enter 时应该可以工作。
我有一个带有一些 TextArea 元素的 GUI 来显示信息。由于 GUI 将对 keyevents 使用react,因此我在场景元素中添加了一个 EventHandler。因为我不想为每个文本区域
我想用 jquery 在文本区域中插入图像。 (我知道 img 标签无法插入到文本区域中)。我正在使用tinymce jquery: tinyMCE.init({ mod
为什么这行不通?这里的input类型是text: var name = $("input[name='Event[name]']").serializeArray(); name = name[0].
我正在研究一种解决方案,当您在 TextArea 中键入文本时,它应该通知用户还剩下多少字符需要输入。比如你只能输入200之类的。这很容易制作,但我希望计数器显示在 TextArea 的背景中而不是单
“文本区域类型属性”有什么用? W3foos says this: The type property returns which type of form element a text area i
我是一名优秀的程序员,十分优秀!