如果我在文本中有“é”,我在使用PHP进行字符串比较时遇到问题。下面是我用一堆调试内联代码的代码。问题是,如果我在下拉列表中选择蒙特利尔,则if
测试不起作用。
if ($metabox->get_the_value() == $key) echo $selected;
// original code pre debug
代码
a= Array(
[INFORMATION] => INFORMATIONS
[LODGING] => HEBERGEMENT
[LOOK OUT FOR] => À SURVEILLER
[Montréal] => Montréal
[PROMOTIONS] ==> PROMOTIONS
[SECTION NAME] ==> NOM DE SECTION
[SPOTLIGHT] ==> EN VEDETTE
)
foreach (a as $key => $val){
echo '<option value="'.$key.'"';
if (strcasecmp ( trim($metabox->get_the_value())), trim($key))== 0) echo $selected ;
echo '>'.$key.' ('.$val.'):'. strcmp ( $metabox->get_the_value(), $key). '</option>';
}
如果我选择并保存蒙特利尔,则输出如下所示,它已保存在数据库中。
<select name="_content_language_meta[_content_cat_type]">
<option value="-1">Select</option>
<option value="INFORMATION">INFORMATION (INFORMATIONS):Montréal - 1</option>
<option value="LODGING">LODGING (HEBERGEMENT):Montréal - 1</option>
<option value="LOOK OUT FOR">LOOK OUT FOR (À SURVEILLER):Montréal - 1</option>
<option value="Montréal">Montréal (Montréal):Montréal - -1</option>
<option value="PROMOTIONS">PROMOTIONS (PROMOTIONS):Montréal - -1</option>
<option value="SECTION NAME">SECTION NAME (NOM DE SECTION):Montréal - -1</option>
<option value="SPOTLIGHT">SPOTLIGHT (EN VEDETTE):Montréal - -1</option>
</select>
如果选择了信息,则输出
<select name="_content_language_meta[_content_cat_type]">
<option value="-1">Select</option>
<option value="INFORMATION" selected="selected">INFORMATION (INFORMATIONS):INFORMATION - 0</option>
<option value="LODGING">LODGING (HEBERGEMENT):INFORMATION - -1</option>
<option value="LOOK OUT FOR">LOOK OUT FOR (À SURVEILLER):INFORMATION - -1</option>
<option value="Montréal">Montréal (Montréal):INFORMATION - -1</option>
<option value="PROMOTIONS">PROMOTIONS (PROMOTIONS):INFORMATION - -1</option>
<option value="SECTION NAME">SECTION NAME (NOM DE SECTION):INFORMATION - -1</option>
<option value="SPOTLIGHT">SPOTLIGHT (EN VEDETTE):INFORMATION - -1</option>
</select>
这是一个WordPress / MYSQL网站。想法?
答案 0 :(得分:0)
我不是utf8 / char-encoding的专家,但我可能有相当多的问题..
关于如何存储UTF-8值,请确保数据库已正确配置为接受UTF-8值。确认utf8字符正在DB中正确存储。
确保DB字符集设置为“utf8”并且校对也设置为某个utf8值,有一段时间我使用“utf8_unicode_ci”但最近已更改为使用“utf8_bin”,因为可能存在“case-insensitive(ci)”将使查询的行为不符合预期的实例(例如,keY = keY vs key = KeY和key = keY或key = KEY)