0

私のウェブサイトで外国語の文字が正しく表示されるようにしようとしています。

「Português」と書こうとすると、次のように出力されます。

Português

私が使用するコードは次のとおりです。

$name = htmlspecialchars(stripslashes($f['forum_name']));

私もこれを試しました:

$name = html_entity_decode(stripslashes(stripslashes($f['forum_desc'])));

しかし、それは私に与えました:

Português

私は何を間違っていますか?

編集: $f はこれから来ます:

$sf=mysql_query("SELECT * FROM forum_cats WHERE forum_type='0' AND forum_type_id='".$h['forum_id']."'");
4

3 に答える 3

1
  • まず、PHP プログラム ファイルが UTF-8 エンコーディングで保存されていることを確認します。(適切なエディターを使用すると、エンコーディングを設定できるはずです)

  • 次に、HTML コードで UTF-8 エンコーディングが指定されていることを確認してください。HTML ヘッドに次のメタ タグがあることを確認してください。

    <meta charset="UTF-8">
    
  • 第三に、エンティティのデコードをすべて破棄し、特にstripslashes().

システム内のすべてが UTF-8 エンコーディングを使用していることを確認するために、さらに作業を行う必要がある場合もあります (データベース、その他の入力ファイルなど)。

于 2013-10-18T16:25:40.757 に答える
0

utf-8 デコードを利用する

<?php
echo utf8_decode("Português");//Português

編集:(最新の質問の更新から)これをPHPコードの上に追加します。

<?php
ini_set('default_charset','utf-8');
mysql_set_charset('utf8');
header('Content-type: text/html; charset=utf-8');
于 2013-10-18T16:17:03.590 に答える
0

これを試して:

<?php echo iconv(mb_detect_encoding($f['forum_name'], "UTF-8,ISO-8859-1"), "UTF-8", $f['forum_name']); ?>

mb_detect_encoding()文字列の文字セット タイプを検出し、文字iconv()列を要求された文字エンコーディングに変換するために使用します。

mb_detect_encodingiconvは公式ドキュメント サイトで参照できます。

于 2013-10-18T16:23:36.430 に答える