在我的 mysql 数据库表中有utf-8个字符。(我的表格排序是 utf8_unicode_ci )
অà§à¦¯à¦¾à¦¸à¦¿à¦¡à¦¿à¦¤à¦¿ কমিয়ে উরà§à¦¬à¦°à¦¤à¦¾ ফিরিয়ে আনতে কোনটি বà§à¦¯à¦¬à¦¹à¦¾à¦° করা হয়?
现在,当我使用 Laravel模型和 json_encode 获取表格列时,我得到了
"\u00e0\u00a6\u2026\u00e0\u00a7\u008d\u00e0\u00a6\u00af\u00e0\u00a6\u00be\u00e0\u00a6\u00b8\u00e0\u00a6\u00bf\u00e0\u00a6\u00a1\u00e0\u00a6\u00bf\u00e0\u00a6\u00a4\u00e0\u00a6\u00bf \u00e0\u00a6\u2022\u00e0\u00a6\u00ae\u00e0\u00a6\u00bf\u00e0\u00a7\u0178\u00e0\u00a7\u2021 \u00e0\u00a6\u2030\u00e0\u00a6\u00b0\u00e0\u00a7\u008d\u00e0\u00a6\u00ac\u00e0\u00a6\u00b0\u00e0\u00a6\u00a4\u00e0\u00a6\u00be \u00e0\u00a6\u00ab\u00e0\u00a6\u00bf\u00e0\u00a6\u00b0\u00e0\u00a6\u00bf\u00e0\u00a7\u0178\u00e0\u00a7\u2021 \u00e0\u00a6\u2020\u00e0\u00a6\u00a8\u00e0\u00a6\u00a4\u00e0\u00a7\u2021 \u00e0\u00a6\u2022\u00e0\u00a7\u2039\u00e0\u00a6\u00a8\u00e0\u00a6\u0178\u00e0\u00a6\u00bf \u00e0\u00a6\u00ac\u00e0\u00a7\u008d\u00e0\u00a6\u00af\u00e0\u00a6\u00ac\u00e0\u00a6\u00b9\u00e0\u00a6\u00be\u00e0\u00a6\u00b0 \u00e0\u00a6\u2022\u00e0\u00a6\u00b0\u00e0\u00a6\u00be \u00e0\u00a6\u00b9\u00e0\u00a7\u0178? "
但是,如果我使用 mysqli准备语句在普通PHP 中获取列并使用 json_encode ,我会得到
"\u0985\u09cd\u09af\u09be\u09b8\u09bf\u09a1\u09bf\u09a4\u09bf \u0995\u09ae\u09bf\u09df\u09c7 \u0989\u09b0\u09cd\u09ac\u09b0\u09a4\u09be \u09ab\u09bf\u09b0\u09bf\u09df\u09c7 \u0986\u09a8\u09a4\u09c7 \u0995\u09cb\u09a8\u099f\u09bf \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09be \u09b9\u09df? "
我想要这个json,但laravel会产生另一个。
Laravel代码:
app/config/database.php
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
//Model
class Problem extends \Eloquent {
protected $fillable = [];
public $timestamps = false;
protected $table = 'problems';
}
// Controller function
public function test()
{
$tmp = Problem::find(33551);
return json_encode($tmp['body']);
}
纯PHP代码:
$sql = "SELECT body FROM problems WHERE id = ?";
$id = 33551;
$statement = $mysqli->prepare($sql);
$statement->bind_param("i", $id);
$statement->execute();
$ret = "";
$statement->bind_result($ret);
$statement->fetch();
echo json_encode($ret);
为什么json_encode在laravel中工作如此奇怪。我该如何解决这个问题呢?
我正在使用Laravel 4.2
请帮忙......
答案 0 :(得分:0)
与json_encode没有区别,你应该检查你从两个方面得到的结果,
并且Problem::find(33551)
不会获得列“body”,它将获得id为33551的整行(一个对象)..
你应该尝试var_dump($ tmp),看看你得到了什么。
使用$tmp->body