我遇到以下问题: 目前,我正在使用在Apache服务器上运行的PHP的Yii2框架创建一个Web应用程序。我的网络应用程序在Gooogle Chrome上完全正常运行,但在Internet Explorer上我遇到了问题,UTF8 econded turkish特殊字符在下拉菜单中不显示也不可读。一旦包含特殊字符的选项出现,菜单将保持为空。
我创建了动态下拉菜单,用于读取MySQL数据库表中的值。在此表中,列中的值以包含特殊字符的土耳其语保存,并且排序规则设置为utf-8。
PHP框架的标题字符集以及网页的元数据都设置为utf-8,但Internet Explorer似乎很难配合编码。
我的下拉菜单代码如下:
<div class="feedback-view">
<?php $form = ActiveForm::begin(); ?>
<p><?php
$sql = 'SELECT * FROM tbl_feedback';
$feedbacks = app\models\Feedback::findBySql($sql)->all();
$list = yii\helpers\ArrayHelper::map($feedbacks, 'name', 'name');
echo $form->field($model, 'name')->dropDownList($list, [
'style'=>'width:300px',
'prompt'=>'--Name select--',
'class' => 'form-field',
'onchange'=>'$.get("'.Yii::$app-
>request->baseUrl.'" + "/index.php?r=feedback/test&name=" + $(this).val(),
function(data){
$("#feedback_id").html(data);
}
);'
]);
?>
<input type="submit" value="submit">
</p>
<?php ActiveForm::end(); ?>
任何提示或建议/提示都会受到高度赞赏,因为我真的遇到了这个问题。提前谢谢。
答案 0 :(得分:0)
解决方案是使用http://php.net/manual/de/book.mysqli.php这个包并格式化utf8。在我使用为SQL设计的不同包之前,这对于包含特殊字母的字符编码不起作用。