Приветствую всех хранителей знаний, и пусть этот глупый вопрос дойдет до вас с хорошим здоровьем,
Я решил изучать PHP, и как часть этого славного предприятия я пытаюсь создатьRESTful API для БД MySql.Я использую Slim поверх PHP 5.3.Все идет нормально.Но я также живу в Дании, что является проблемой (очевидно), потому что нам нравится использовать символы типа «æ», «ø» и «å».
Итак, когда я спрашиваю мою фантастическую хитрость RESTful дляобъект без странных символов, вежливо отвечает:
{
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() .'}}';
}
}
Спасибо, и пусть к вам стекаются девственницы с дарами ферментированного ячменя.