2

アクセント付きの文字を変換するhtmlentitiesを使用していますが、このタイプの引用符を変換していません。代わりに、ブラウザに疑問符の付いた奇妙な記号が表示されます。</ p>

記号として表示されるこれらの種類の文字をどのように変換できますか?たとえば、「He​​lloColors」という本がテーブルにあります。

このコマンドを試しましたが、機能しません。

htmlentities($message);
htmlentities($message, ENT_QUOTES, 'UTF-8');
htmlentities($message, ENT_NOQUOTES, 'UTF-8');
htmlentities($message, ENT_COMPAT, 'UTF-8');

ありがとうございました。

次のことをすると、何か変なことに気づきました

echo $message; die(); 

見積もりをデバッグするための白いページを表示するには!では、何が起こっているのでしょうか。Webサイトページに正しく表示されないのはなぜですか?:S

4

2 に答える 2

4

ブラウザで文字セットの仕様を見逃しているようですが、

<meta charset="UTF-8">これをWebページのヘッドセクションに追加してみてください。以前、UTF -8で多言語テキストを表示するためにこのような問題が発生しましたが、この問題を解決するために同じことを行いました。

お役に立てれば

ところで

HTML5の <meta charset="UTF-8">作品

HTML4の場合

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

XMLの場合は、指定する必要があります

<?xml version="1.0" encoding="UTF-8"?>

ここがすべての情報を入手できる場所です

HTMLでの文字エンコードの宣言

コンテンツ文字セットを設定するにはいくつかの方法があります。サーバーを設定して常にutf-8をレンダリングすることもできます。サーバーの設定セクションで詳細を確認できます。

編集 : -

コメント欄であなたと会話した後、

あなたの問題はJoomlaにあります

Webページに文字セットISO-8859を配置してテストしましたが、これは、UTF-8ではなくISOでコンテンツを取得していることを明確に証明しています。

おそらくあなたのmysqlデータベースはUTF-8にないので、ISOテキストを前面に送信しているので、DBをUTF-8general-ciまたはISOlatin1に変更できます。 DBをutf-8-general-ciに変更します。これは、ヘッダーがutf-8に設定されたhtmlページが既に存在するためです。これで問題が解決します。

また、DBを変更できない場合は、そのDBがISO文字セットに含まれていることをすでに知っているので、すべてのJoomlaテンプレートヘッダーをISO文字セットに変更します。

このように見えます

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

また

PHPで

header('Content-Type: text/html; charset=iso-8859-1'); 

既存のcharsetutf-8宣言を削除します。

于 2013-02-21T17:04:50.577 に答える
1

次のコードを試してみてください、それは私のために働きました:

<?php
$message = "“Hello Colors“";
$message = iconv('UTF-8', 'ASCII//TRANSLIT', $message);
echo htmlentities($message);
?>

結果:

&quot;Hello Colors&quot;
于 2013-02-21T17:06:45.600 に答える