0

我正在创建一个博客引擎,它包含一个<textarea>接收整篇文章的输入。

然后我使用 ajax 并将其存储到TextGAE 数据存储提供的变量中

问题:如果用户从 Word 文档中复制文本,当嵌入网页时,我会在屏幕上看到各种随机字符。我知道这是因为 word 文件使用 XML 编码,而 HTML 页面使用 utf-8 编码(在我的情况下)

问题:如何更改输入文本的编码?或者我怎样才能避免 XML 编码?或者如果更改我的网页的编码可能有助于解决这个问题?

需要注意的点:我想让它自动化。我在谷歌上读到你应该首先将文本复制到一些简单的文本编辑器,该编辑器格式化编码,然后将其复制到网页。但是这个选项对我来说是不可行的。

我以前也使用过weebly,那次我从word文件中复制了文本,如果有人知道weebly如何管理编码冲突!

答案应该在 java 中 :)

4

2 回答 2

1

那是因为 UTF-8 标准未涵盖单词文档'(逗号),因此您需要以编程方式处理它。

下面是一些关于javascript的例子

<textarea rows="4" onkeyup="replaceWordChars(this.value)" cols="50">
//your text area
</textarea> 


function replaceWordChars(text) {
    var s = text;
    // smart single quotes and apostrophe
    s = s.replace(/[\u2018|\u2019|\u201A]/g, "\'");
    // smart double quotes
    s = s.replace(/[\u201C|\u201D|\u201E]/g, "\"");
    // ellipsis
    s = s.replace(/\u2026/g, "...");
    // dashes
    s = s.replace(/[\u2013|\u2014]/g, "-");
    // circumflex
    s = s.replace(/\u02C6/g, "^");
    // open angle bracket
    s = s.replace(/\u2039/g, "<");
    // close angle bracket
    s = s.replace(/\u203A/g, ">");
    // spaces
    s = s.replace(/[\u02DC|\u00A0]/g, " ");
    document.getElementById("your Textarea ID ").value = s;
}

在文本区域,您需要触发此 javascript 函数 onKeyup 事件

于 2013-10-12T09:58:30.013 回答
0

不确定这是否会对任何人有所帮助,但我花了几天时间试图解决这个问题。我的用例非常相似,除了我发现与剪贴板复制方式有关的问题(这取决于操作系统略有变化)并随后粘贴文本。(我使用ClipSpy来调查“幕后”发生的事情。)

请原谅我的外行解释:剪贴板以多种格式存储文本,并且当给出粘贴命令时,它会尝试匹配接收程序的字符集/编码,或者在我<textarea>的网页框中。这些网站和论坛帖子提供了极大的帮助:

最终,我所要做的就是尽早声明<head> <meta charset="UTF-8"> </head>让浏览器为我完成“艰苦”的工作,期待 UTF-8 编码的文本和剪贴板尝试兑现这一点。

于 2015-10-19T09:37:09.633 回答