我有2個不同的提供商在提供商託管計劃我的網站工作沒有一個單一的問題,但提供商B無論我做什麼UTF-8從來沒有工作。UTF-8在託管A上工作,但不託管B,可能會導致它?
兩個託管網站在每個方面都完全一樣,所以我們在這裏唯一的區別是服務器。
如果我簡單的創建一個文件,記事本上節約以下內容爲UTF-8 ENC:
<?php
header('content-type: text/html; charset: utf-8');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?
$var = "áéíóí";
echo $var;
?>
<body>
<html>
它工作正常上託管,但無法顯示在主機B.
人物我已經檢查了兩個php.ini文件,並且都有相同的信息。
我還有什麼可以嘗試,更改或試圖讓託管B的UTF-8工作?
從我可以告訴它似乎wholelly服務器端問題的一些配置丟失或其他原因,否則爲什麼同一個網站將工作託管A而不演示一個單一的問題?
捲曲響應主機B:
[email protected]:~# curl -v http://painel.xxxxxx.com/test.php
* About to connect() to painel.xxxxxx.com port 80 (#0)
* Trying 10.0.0.2... connected
* Connected to painel.xxxxxx.com (10.0.0.2) port 80 (#0)
> GET /test.php HTTP/1.1
> User-Agent: curl/7.20.1 (i686-pc-linux-gnu) libcurl/7.20.1 OpenSSL/0.9.8n zlib/1.2.5 libidn/1.5
> Host: painel.xxxxxx.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Thu, 15 Sep 2011 11:55:33 GMT
< Server: Apache/2.2.15 (Unix) mod_ssl/2.2.15 OpenSSL/0.9.8n DAV/2 mod_python/3.3.1 Python/2.6.4 PHP/5.3.6 SVN/1.6.11 mod_fastcgi/2.4.6
< X-Powered-By: PHP/5.3.6
< Transfer-Encoding: chunked
< Content-Type: text/html; charset=utf-8
<
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
áéíóíaed<body>
* Connection #0 to host painel.xxxxxx.com left intact
* Closing connection #0
<html>
螢火響應從我的電腦主機B:
HTTP/1.1 200 OK
Date: Thu, 15 Sep 2011 12:06:21 GMT
Server: Apache/2.2.15 (Unix) mod_ssl/2.2.15 OpenSSL/0.9.8n DAV/2 mod_python/3.3.1 Python/2.6.4 PHP/5.3.6 SVN/1.6.11 mod_fastcgi/2.4.6
X-Powered-By: PHP/5.3.6
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8
Host painel.xxxxxxx.com
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language pt-br,pt;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection keep-alive
Cookie
Cache-Control max-age=0
到目前爲止已經試過:從操作系統到EN_US
- 改變興田區域。 UTF8
- 更改了apache上的默認字符集
- 設置沙雷爲UTF-8上的php.ini
- 文件都保存在UTF8
- 同一文件上都託管計劃測試,只適用於在的第一行託管A.
- 代碼
mb_internal_encoding("UTF-8");
- 在代碼
setlocale(LC_CTYPE, 'C');
- 上述2一起
header('content-type: text/html; charset: utf-8');
和header('content-type: text/html; charset=utf-8');
這意味着服務器啓用了Zend多字節,這有點奇怪,因爲它帶來了很大的性能損失,但效果不大。 – Artefacto
@Artefacto true我剛剛驗證過它已啓用。 '--enable-zend-multibyte'這是很好的知道它是原因。我將回顧我們的php需求,以便重新編譯它。感謝您的評論。 – Prix