所有冰雹知識的守護者,可能這個愚蠢的問題,請將您的身體健康,在對象中的特殊字符導致json_encode拋出錯誤
我已經闡述學習PHP,並作爲光榮的企業的一部分,我正在嘗試爲MySql數據庫創建一個RESTful API。我在PHP 5.3上使用Slim。到現在爲止還挺好。但我也住在丹麥,這是一個問題(顯然),因爲我們喜歡使用像'æ','ø'和'å'這樣的字符。
所以,當我問我的夢幻般的REST風格的玩意兒了一個對象而奇怪的字符,禮貌地回答說:
{
id: "3",
name: "Wall - Plaster",
price: "200",
unit: "m2",
tags: "1"
}
但是,唉。事情並不那麼好走,當有人問到與「æ」或任何其他奇怪的字符返回一個對象:
FOOL! json_encode(): Invalid UTF-8 sequence in argument
函數utf8_encode()和Iconv.conv()適用於字符串和數組。但是,我可以使用什麼對象?有沒有什麼方法可以迭代我的方式通過一個對象,像foreach?
我的數據庫和表都是UTF8。
我的排外功能問題:
function getItem($id) {
$sql = "SELECT * FROM items WHERE id=:id";
try {
$db = getConnection();
$stmt = $db->prepare($sql);
$stmt->bindParam("id", $id);
$stmt->execute();
$item = $stmt->fetchObject();
$db = null;
echo json_encode($item);
//echo $item;
//print_r($item);
} catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
謝謝你,並可能處女涌向你攜帶發酵大麥的禮物。
主席先生,你是一位學者,肯定是偉大格式的紳士!我在我的連接選項中添加了PDO :: MYSQL_ATTR_INIT_COMMAND =>'SET NAMES utf8',現在'æ','ø'和'å'不再被視爲二等公民。我最深切的感激之情。 – playeren 2012-02-14 18:19:26
這也解決了我的問題(並從我創建一個重複的問題保存)。非常感謝你! – acedanger 2013-05-17 14:01:53