如何防止我的UTF-8字符变成垃圾?

时间:2012-01-26 02:40:53

标签: javascript html utf-8 character-encoding

我正在创建一个简单的JavaScript多选游戏。以下是一个示例问题:

p ∧ q ≡ q ∧ p by which rule?

当我在localhost上运行它时,它工作正常,它打印出那些特殊字符。但是,当我将它上传到学校的服务器时,会打印出垃圾:

p ∨ q ≡ q ∨ p by which rule? 

我在HTML的顶部有这个:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

我无法在作业中使用PHP,或者我使用header('Content-Type: text/xml, charset=utf-8');

如果你愿意,我可以提供一个链接...但我不愿意,因为那时每个人都可以看到我真正糟糕的教育游戏......

如何保留我的UTF-8字符?

编辑我发现,如果我将文件归档到服务器并从服务器下载,则字符会变成小方块。我不知道这是否有用。

3 个答案:

答案 0 :(得分:3)

  

编辑:我发现如果我将文件归档到服务器并从服务器下载它们,那么这些字符就变成了小方块。我不知道这是否有用。

是的,filezilla正在破坏传输中的文件。确保filezilla将文件作为二进制文件传输,以确保文本在传输过程中不会被破坏。如果它以ascii模式传输,它将尝试修复换行符和无法识别的字符。

答案 1 :(得分:1)

如果您无法轻松修复HTTP标头,请使用“字符转义”来解决问题。 “∧”出现在HTML内容中,请使用&#x2227;。如果它出现在JavaScript字符串文字中,请使用\u2227

要查看其他字符的代码,请参阅例如 http://www.alanwood.net/unicode/mathematical_operators.html

答案 2 :(得分:0)

如果这是一个可行的选项,将问题复制并粘贴到记事本或允许您保存为UTF-8的任何其他应用程序中可能会有效。

我认为您还可以使用正则表达式来标识十六进制值,并将其替换为可在UTF8中使用的相应值。

此外,如果您使用的是专门类型的字体,这可能会导致问题 - 是否使用特定字体进行了风格化的问题?一套后备?你可能需要做一个@ font-face导入,但我怀疑还有另外一个选项......你试图使用它的符号看起来像LaTeX可能是一个选项..我相信有一些选项可用于javascript ,字体等..

这篇文章可能也很有用:http://www.joelonsoftware.com/printerFriendly/articles/Unicode.html