プロが教えるわが家の防犯対策術!

( PHP )
echo '<label for="category_name">カテゴリ</label>';
echo '<select name="key_03" id="category_name">';

$array = array();
foreach ($rows as $row) {
$array[] = $row['category_name'];
}

$no_duplication_array = array_unique($array);
$align_keys_no_duplicated_array = array_values($no_duplication_array);
foreach ($align_keys_no_duplicated_array as $i => $value) {
echo '<option value="' .$value[$i]. '">' .$value[$i]. '</option>';
}

echo '</select>';

上記の $rows には MySQL からの値を取得しています。
その配列内の重複した値を削除後、キーを振り直し出力したところ、

print_r($align_keys_no_duplicated_array); では、

array ( [0] => あ [1] => い [2] => く )

文字化けはないのですが、HTML では以下のようになっています。

<select name="key_03" id="category_name">
<option value="�">�</option>
<option value="�">�</option>
<option value="�">�</option>
</select>


対応として、
php.ini を
mbstring.language=Japanese
mbstring.internal_encoding="UTF-8"
mbstring.http_output="UTF-8"

HTML
<meta http-equiv="content-language" content="ja">
<meta charset="UTF-8">

を行ったのですが、文字化けは解消しませんでした。
わかる方がおりましたら、ご教授下さい。

宜しくお願い致します。

質問者からの補足コメント

  • うーん・・・

    もちろん、 php.ini 設定後 サーバ反映、リスタートしています。

    HTML 出力だけ文字化けって、これまでにないバグですね。

    No.2の回答に寄せられた補足コメントです。 補足日時:2019/07/11 15:21

A 回答 (2件)

Webサーバーを再起動していないのでは。

この回答への補足あり
    • good
    • 1

ファイルの文字コードがutf-8じゃないのでは?

    • good
    • 2
この回答へのお礼

回答頂きありがとうございます。
ファイルは utf-8 であることは確認しています。

お礼日時:2019/07/10 13:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!