1

MSSQLデータベースからデータを取得して配列に保存するPHPが少しあります。

while($row = mssql_fetch_array($dbquery, MSSQL_NUM)) 
{
    $content = array(
        'something'         =>  $row[1],
        'something_else'    =>  $row[2]
        // etcetera
    );
}

(私がそのような配列にデータを書き込む理由は関係ないと思いますが、知っておく必要があるのは、データがExpressionEngine(EECMS)によって解析されるためです。PHPコードは私が開発しているプラ​​グインの一部であり、これは、ExpressionEngineタグでデータを使用できるようにする最も簡単な方法です。)

de MSSQLデータベースの一部のデータには、ëやéなどの句読点付きの文字が含まれています。分音記号(ë)は、HTMLでは疑問符として表示されます。たとえば、Cliëntenはとして表示されCli�ntenます。

HTMLはUTF8にあります:<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

MSSQLデータベースでは何も変更できません。これを修正するための、できればPHPでの最良の方法は何ですか?

4

1 に答える 1

2

このような疑問符が表示されている場合は、疑問符が置き換えられた文字が何を表しているのかをブラウザが理解できないことを意味します。ほとんどの場合、utf8文字エンコードを想定しており、取得していません。

アレイでこのようなものを実行してみて(ビルド後)、それが役立つかどうかを確認してください。

$content = array_map('utf8_encode', $content);

基本的に、データベースでそのようにエンコードされていないため、データベースから出力されるすべての文字列に対してutf8_encode()関数を実行する必要があります。

各変数を出力する直前にutf8_encode関数を実行することもできます。だから次のようなもの:

<p><?php echo utf8_encode($content_row) ?></p>
于 2012-08-09T11:33:59.760 に答える