簡體   English   中英

UTF-8編碼在PHP中不起作用

[英]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 ; 大多數人將其視為OP之間的字母。 Z之后整理一些。

Æ是另一回事。 它與utf8_unicode_520_ci的兩個字母AE相同,並且至少還有一個其他排序規則。 否則,它在AB之間或Z之后。

Ç是另一回事。 對於 utf8_turkish_ci 以外的所有歸類,它等於C ,在這種情況下,它是CD之間的字母。

Š = S ,表示許多歸類; ST之間

底線:對列和連接使用utf8_unicode_520_ci 鍵入Æ作為AE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM