2012-09-04 84 views
0

我想給用戶提供的字符串保存到MongoDB的,但保存到之前正常化這樣做:修剪,小寫字母,大寫單詞,並保存在MongoDB中

ucwords(mb_strtolower(trim($name)))

但是,這使得MongoDB的投一個帶有「æøå」字符的MongoException。

我以爲「mb_」使這個功能可以正常使用UTF-8嗎?使用普通strtolower可以解決問題。

感謝

+0

也許'utf8_encode()'實際上首先將它變成utf8? :) –

回答

1

如果你是在PHP 5.4的默認字符集已經從從ISO-8859-1到UTF-8。

用strtolower應該爲你做一個完美的工作,除非從$名稱的編碼不是ISO-8859-1或UTF-8

0

MongoDB中總是期望UTF-8字符串。

由於@JvdBerg說它取決於你的PHP,但在PHP 5.4之前的默認不是UTF-8,所以你需要使用iconvutf8_encode來「編碼」字符串。很可能你使用的是舊的PHP,而字符串實際上是ISO編碼。

mb_功能只是考慮多字節字符,當它做它的轉換它不編碼字符串。

相關問題