8编码不起作用我在数据库中有一些特殊字符无法获取某些具有特殊字符的城市,例如Østfoldcity和Ærø所以当我输入ostfold
时它没有获取{{ 1}}来自数据库的城市。当我分别写下sia和cor时,我完全从db获得Šiauliai和Çorum。
我有一个城市表我使用jquery autocomplete ajax从这个表中获取城市所以当我输入前三个字母时它会显示我在CodeIgniter框架中工作的相关字母列表。
我的 CodeIgniter database.php的设置: -
Østfold
我的数据库表城市的列设置是: -
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
请帮助我,我必须改变其他任何事情,为什么我无法让这些城市以Ø和Æ开头。
答案 0 :(得分:2)
尝试此代码我希望这可以解决您的问题。
file_exists(mb_convert_encoding("file_å.txt", "UTF-8"));
答案 1 :(得分:0)
collation table不列出Æ等于A,也不列出Ø等于O.
你没有编码问题(否则Çorum= corum不起作用),而是一个期望问题。你期望他们是平等的。根据整理表的定义,它们不是。
答案 2 :(得分:0)
请参阅Reference
Ø
= O
只进行一次整理:utf8_unicode_520_ci
;大多数人将其视为O
和P
之间的字母。一些人在Z
之后整理它。
Æ
是另一回事。它与AE
中的两个字母utf8_unicode_520_ci
以及至少一个其他排序规则进行整理。否则,它位于A
和B
之间或Z
之后。
Ç
是另一回事。对于除 C
之外的所有归类,它等于utf8_turkish_ci
,在这种情况下,它是C
和D
之间的字母。
Š
= S
;某些人在S
和T
之间。
底线:使用utf8_unicode_520_ci
作为列和连接;将Æ
键入AE
。