0

そのため、データベースからすべての結果をすばやく表示する方法を見つけようとしていますが、utf8_encode()すべての文字を適切に表示するために、すべてのテキストに関数を追加する必要がある理由がわかりません。

記録として、私のデータベース情報はフランス語と英語の両方であるため、à、ç、è、é、ê、î、ö、ô、ù (およびその他) を含む特殊文字が必要になります。

私のフォームのページには次のタグがあります。

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

データベース、すべてのテーブル、およびすべてのフィールドが に設定されていutf8_general_ciます。

データベース情報をページにエコーしたい場合は、次のクエリを使用します。

public function read_information()
{
    global $db;
    $query = "SELECT * FROM table WHERE id='1' LIMIT 1";
    return $db->select($query);
}

次のような情報を返します。

$info = $query->read_information();
<?php foreach ( $info as $dbinfo ) { ?>
    <pre><?php echo $dbinfo->column; ?></pre>
<?php } ?>

ただし、文字列にフランス語の文字が含まれている場合は、する必要があり<pre><?php echo utf8_encode($info->column); ?></pre>、これは本当に避けたいことです。

utf8_encode/utf8_decode、htmlentities/html_entity_decode などに関する PHP.net のドキュメントを読みました。ただし、データベースの結果ごとに特別な関数を追加する必要がある理由がわかりません。

私も使用してみmysqli_query("SET NAMES 'utf8'", $mysqli);ましたが、これは私の問題を解決しません。私が探しているのは、ある種の機能のような機能を作成する必要のないある種のショートカットだと思いますmake_this_french_friendly()

4

4 に答える 4

2

作業しているすべてのスタックが、データベース、Web サーバー、ページ メタなどから UTF8 に設定されていることを確認します。

ini_set('default_charset', 'utf-8')

私の経験では、単純なものを出力する必要があります

于 2013-11-04T16:19:26.427 に答える
0

テキストコーディングが UTF-8 ではない可能性があります。

見てください: UTF-8 と BOM なしの UTF-8 の違いは何ですか?

多分それはあなたを助けることができます。

于 2013-11-04T16:59:24.240 に答える