Javascript:如何将复制到textarea的文本从任何编码转换为UTF-8?

Javascript:如何将复制到textarea的文本从任何编码转换为UTF-8?,javascript,utf-8,url-encoding,Javascript,Utf 8,Url Encoding,我有一个简单的html+js页面,带有 用户应该在其中粘贴一些文本,页面将使用粘贴的文本作为远程服务url的GET参数,该url需要UTF-8 我当前的代码如下: <body> <textarea id="editor"></textarea> </body> <script> var content = document.getElementById('editor').innerHTML; content = strip

我有一个简单的html+js页面,带有

用户应该在其中粘贴一些文本,页面将使用粘贴的文本作为远程服务url的GET参数,该url需要UTF-8

我当前的代码如下:

<body>
  <textarea id="editor"></textarea>
</body>
<script>
  var content = document.getElementById('editor').innerHTML;
  content = stripTags(content);
  content = decodeHTML(content);
  content = encodeURIComponent(content);
  var url = remoteServiceBaseUrl + content;
  window.open(url, '_blank');

  function stripTags(input) {
    return input.replace(/<(.|\n)*?>/g, '');
  }

  function decodeHtml(html) {
    var txt = document.createElement("textarea");
    txt.innerHTML = html;
    return txt.value;
  }
<script>

var content=document.getElementById('editor').innerHTML;
内容=条带标签(内容);
内容=解码HTML(内容);
内容=组件(内容);
var url=remoteServiceBaseUrl+内容;
打开(url,“U空白”);
功能条带标签(输入){
返回输入。替换(//g',);
}
函数解码html(html){
var txt=document.createElement(“textarea”);
txt.innerHTML=html;
返回txt.value;
}
但是它在一些
Windows-1252
文本中发现了
%0C
表单提要
)字符时遇到了问题:调用url时抛出错误
URIError:格式错误的URI序列


所以问题是:如何使用javascript将文本独立于源代码编码转换为UTF-8?

我认为问题不在于字符编码。问题是在URL的路径部分不能有formfeed,不管URI编码与否。(您可以在查询字符串或散列中输入,但不能在路径中输入。)旁注:我假设您也在处理删除服务器端的HTML内容的问题,因为您永远不能信任客户端环境。@t.J.Crowder:1st comment:我的错误,它不是复制粘贴,我确实重写了代码以简化它…,更正。第二条评论:我没想过。。。您的意思是,如果它位于查询字符串部分(在“?”…”之后),它应该可以工作吗?第三条评论:
remoteServiceBaseUrl
是一个我无法控制的外部服务。。。因此,我必须信任客户端的卫生服务,我假设外部服务会对请求进行消毒…:-)@T.J.Crowder:我不仅仅对表单提要字符有问题,而且对
ª
也有问题(还有更多…:-()。是的,在查询字符串中,应该没有问题。