当我将网页从本地计算机(Mac)复制到远程服务器(Ubuntu)时,文本中的特殊字符在浏览器中显示为方块,或在终端中显示为问号符号。
我尝试使用 scp 或 ftp 复制它们;同样的问题。
我检查了服务器上的语言:LANG=en_US.UTF-8。这似乎是正确的,而且无论如何都不应该成为问题,因为当我在服务器的终端中编辑文件时,特殊字符会正常显示。
已经搜索了几个小时,但找不到解决方案。有人有想法吗?
答案1
使用 UTF-8 可以解决很多问题,但您仍然必须使用 HTML 实体来表示保留的 XML 字符(& 符号、小于号、大于号)。因此,要么使用 HTML 实体,要么使用 HTTP 标头来提供网页,标明它是 UTF-8。这可以通过 HTML 标头或 META 标记来完成:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
或者,在 Ubuntu 网络服务器中更改默认编码:
阿帕奇:AddDefaultCharset utf-8
nginx的:charset utf-8;
在终端上,您知道服务器使用的是 UTF-8 ( locale
),因此请确保您的 SSH 客户端设置正确。例如,如果使用 Putty,我们必须设置 Putty 的字符集:
油灰:Window->Translation->Remote character set: UTF-8
否则,它将使用 ISO-8859-1。
并检查编辑器正在使用的格式。
file file.ext
如果编辑器正在编写 UTF-8 文件,我们应该看到“UTF-8 Unicode 文本”。