3

Web サイトに中国語のテキストを配置しようとしていますが、オンラインにページを配置するとすぐに、中国語のテキストの代わりにクエスチョン マークの列が表示されます?????????? ?????????????

オンラインにする前に同じページを WAMP サーバーでテストしました (すべてのページに php 拡張子が付いています)。中国語の文字は問題なく表示されます。オンライン ホスト サーバーからページが要求された場合にのみ、すべての疑問符が表示されます。 .

ページには次が含まれています(これが役立つ場合):

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
4

4 に答える 4

5

ある種のデータベースを使用している場合は、データベースにクエリを実行する前に (ただし、接続を確立した後に)、これを実行してください。

mysql_set_charset("utf8");
于 2010-06-24T17:05:06.613 に答える
1

実際の HTTP 応答ヘッダーは常に HTML<meta>ヘッダーをオーバーライドします。あなたのコメントによると:

私はヘッダーにあまり詳しくありません。作業ページからの応答ヘッダーは次のとおりです。

日付: 2010 年 6 月 24 日 (木) 05:24:23 GMT
サーバー: Apache/2.0.63 (Win32) PHP/5.2.11
X-Powered-By: PHP/5.2.11
コンテンツの長さ: 3622
キープアライブ: タイムアウト = 15、最大 = 100
接続: キープアライブ
コンテンツ タイプ: テキスト/html; 文字セット=UTF-8
200OK
および非稼働ページ:
日付: 2010 年 6 月 24 日 (木) 05:26:54 GMT
サーバー: アパッチ
X-Powered-By: PHP/5.2.12
接続: 閉じる
Transfer-Encoding: チャンク
コンテンツタイプ: text/html
200OK

動作していないページの HTTP 応答ヘッダーに、文字セットが指定されていないContent-Typeがあります。だったはずです。text/html text/html; charset=UTF-8

応答本文に文字 (HTML) を送信する前に、PHP ページの先頭に次の行を追加することで、これを回避できます。

header('Content-Type: text/html; charset=UTF-8');

更新:コメントによると、上記の原因は除外されているようです。次のチェック; ファイル自体はUTF-8で保存されていますか?ページを右クリックしてソースを表示します。クエスチョンマークもありますか?その場合、ホスティングへの FTP 転送中に問題が発生しました。テキスト/ASCII の代わりにバイナリを選択するか、FTP クライアント設定で転送されるテキスト ファイルの文字エンコーディングを設定して、再試行してください。

于 2010-06-24T17:01:46.630 に答える
0

同様の問題があり、解決できました。

サイトのコンテンツを PHP 経由で渡しました。生の HTML ファイルとして表示すると文字は正しく表示されますが、PHP を介して (私の場合は auto_prepend_file を使用して) 渡すと、文字がクエスチョン マークに変わります。

解決策は、PHP 設定で detect_unicode をオフにすることでした。私の場合、次の行を含めるように .htaccess ファイルを編集しました。

php_value detect_unicode "0"

...そして、漢字が正しく表示されるようになりました。ini_set() を使用した同等の解決策があるかもしれません。

お役に立てれば。

于 2011-03-01T17:08:00.237 に答える