【发布时间】:2011-09-28 11:16:42
【问题描述】:
我正在开发一个带有一些印度 unicode 字符的网站,我在我的电脑上安装了 xampp,当我在本地服务器上测试时,unicode 字符显示正常,但是当我将它上传到 web 服务器时,所有 unicode 字符都显示为??标记....
我的网络服务器是基于 Linux 的,所以任何人都可以帮忙......
这是来自我的网站:
这是来自我的本地网络服务器:
【问题讨论】:
我正在开发一个带有一些印度 unicode 字符的网站,我在我的电脑上安装了 xampp,当我在本地服务器上测试时,unicode 字符显示正常,但是当我将它上传到 web 服务器时,所有 unicode 字符都显示为??标记....
我的网络服务器是基于 Linux 的,所以任何人都可以帮忙......
这是来自我的网站:
这是来自我的本地网络服务器:
【问题讨论】:
确保在 html 中将 charset 声明为 utf-8,例如 the Mozilla docs 中的示例:
<!-- Defining the charset in HTML4 -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- In HTML5 -->
<meta charset="utf-8">
【讨论】:
您需要在 HTTP 标头中声明字符集为 UTF-8,具体方式取决于您的服务器:http://www.w3.org/International/O-HTTP-charset
如果您不想配置您的网络服务器,您也可以在网页的<head> 中使用<meta http-equiv> 标记,它可以等同于HTTP 标头。
【讨论】:
确保您的服务器使用 UTF8 作为默认字符集(也许您需要修改服务器设置)。
AddDefaultCharset utf-8
将上面的行放到您的 httpd.conf(如果可能...然后重新启动服务器)或 DOCUMENT_ROOT 顶层的.htaccess-文件(无需重新启动)
通过元标记声明字符集是不够的,它将被服务器发送的字符集标头(如果存在)覆盖。
您也可以在脚本中发送标头:
<?php header('Content-Type: text/html; charset=utf-8'); ?>
【讨论】:
AddDefaultCharset、httpd.conf 和 .htaccess 是特定于 Apache HTTP 服务器(及其衍生产品)的,听起来像是 OP 可能正在使用的。 PHP 的header() 应该可以正常工作。