[英]UTF-8 is encoding not working in PHP
當我從mysql表中獲取數據時8編碼不起作用我在數據庫中有一些特殊字符,無法獲取某些帶有特殊字符的城市,例如ostfold
和Ærø,因此當我鍵入ostfold
它沒有從數據庫中獲取Østfold
城市。 當我分別寫sia和cor時,我從db完全獲得Šiauliai和Çorum。
我有一個城市表,我正在使用jquery自動完成ajax從該表中獲取城市,因此當我輸入前三個字母時,它將顯示我正在CodeIgniter框架中工作的相關字母的列表。
我對CodeIgniter database.php的設置:
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
我的數據庫表城市的列設置為:-
city_name(column name) varchar(100) utf8_general_ci(Collation)
請為我提供其他幫助,因為我無法更改以Ø和this等字符開頭的城市,因此我必須對此進行更改。
試試這個代碼,我希望這可以解決您的問題。
file_exists(mb_convert_encoding("file_å.txt", "UTF-8"));
整理表沒有列出be等於A,也沒有列出Ø等於O。
您沒有編碼問題(否則Çorum= corum不起作用),而是期望問題。 您期望它們相等。 根據整理表的定義,它們不是。
請參閱參考
Ø
= O
僅適用於一種排序規則: utf8_unicode_520_ci
; 大多數人將其視為O
和P
之間的字母。 在Z
之后整理一些。
Æ
是另一回事。 它與utf8_unicode_520_ci
的兩個字母AE
相同,並且至少還有一個其他排序規則。 否則,它在A
和B
之間或Z
之后。
Ç
是另一回事。 對於除 utf8_turkish_ci
以外的所有歸類,它等於C
,在這種情況下,它是C
和D
之間的字母。
Š
= S
,表示許多歸類; 在S
和T
之間
底線:對列和連接使用utf8_unicode_520_ci
; 鍵入Æ
作為AE
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.