替换·符号

问题描述:

我目前得到了一个真正奇怪的问题。替换·符号

Facebook宽泛地使用·符号。我试图用一个常规的hypen替换它,但我有一个......奇怪的错误。

如果我在我的HTML文档中放入“·”,它会在页面上显示为“?”。如果我在文档中放置“?”,它会在页面上显示为“?”。如果我在文档中放置“?”,则在页面上显示为“?”。如果我在文档中放置“”,它会在页面上显示为“ÃÆ'ââ¬Ã”。我假设这种情况继续发生。

我认为这是我的问题的原因,但基本上我想能够将“·”放在文本框中,并将Javascript更改为“ - ”。为了完整起见,这里是我的完整代码:

<html> 
    <body> 
     <div id="display"></div><br/> 
     <input type=textbox id="text_in"/> 
     <input type=submit onclick='replaceDots()'/> 

     <script> 
      function replaceDots() { 
       var text_in = document.getElementById("text_in").value; 
       document.getElementById("display").innerHTML = text_in.replace("·","-");  
      } 
     </script> 
    </body> 
</html> 

当我在输入中显示·符号是显示。奇怪的是,如果我在函数中设置text_in等于'?',它会在输出中显示一个连字符。这就是为什么我错误是为什么,但老实说这是我难倒。

任何想法?

+3

欢迎来到unicode世界。你已经在你的文档中写了一个unicode(UTF-8)'''符号。该符号由多个代码单元(在这种情况下是字节)组成,但是它的'Content-Type'被设置为Ansi代码页,使得每个字节显示为独立的Ansi字符。看到[绝对最小每个软件开发人员绝对肯定,肯定必须知道Unicode和字符集(没有借口!)](http://www.joelonsoftware.com/articles/Unicode.html) – GolezTrol 2014-11-01 08:03:31

+1

我写了一次Unicode介绍 - http://kos.gd/2013/02/say-hello-to-unicode/ – Kos 2014-11-01 08:10:43

+0

你们是我的英雄,谢谢。 – 2014-11-01 08:17:37

您需要改用转义值。用你的线代替:

document.getElementById("display").innerHTML = text_in.replace("&#183;","-"); 
+0

这对我不起作用 – 2014-11-01 08:13:39

+0

嗯,我会看看我能否修复它。对于那个很抱歉。 – 2014-11-01 08:14:14

+0

我以某种方式设置了错误的字符集,谢谢! – 2014-11-01 08:17:55