Как вы это распечатываете? javascript изначально поддерживает кодировку \ uXXXX, и делает это в javascript:
var x = "\u00f6"; alert(x);
следует распечатать небольшой ö.
РЕДАКТИРОВАТЬ: Согласно вашему коду, если вы выводите это непосредственно в поток ответов и используете фактический ответ в качестве переменной в js на стороне клиента, вам вообще не нужно заботиться о json_encode.
Вы бы просто сказали браузеру, что контент является utf8, установив заголовок типа контента:
header('content-type: text/plain;charset=utf8');
И тогда код jQuery.data () будет работать нормально.