android的json utf-8编码
我的安卓应用程序数据库中有一些波斯语(utf8)单词,我正在使用json在安卓应用程序中显示数据库信息。android的json utf-8编码,android,json,utf-8,Android,Json,Utf 8,我的安卓应用程序数据库中有一些波斯语(utf8)单词,我正在使用json在安卓应用程序中显示数据库信息。 我在Databasemanager.php上有以下代码: function getMusics() { $connection = mysqli_connect(DatabaseManager::HOST_NAME, DatabaseManager::USER_NAME, DatabaseManager::PASSWORD, DatabaseManager::DATABASE_NAM
我在Databasemanager.php上有以下代码:
function getMusics()
{
$connection = mysqli_connect(DatabaseManager::HOST_NAME, DatabaseManager::USER_NAME, DatabaseManager::PASSWORD, DatabaseManager::DATABASE_NAME);
$sqlQuery = "SELECT * FROM musics where active = 1 order by date desc;";
$result = $connection->query($sqlQuery);
$musicsArray = array();
if ($result->num_rows > 0) {
for ($i = 0; $i < $result->num_rows; $i++) {
$musicsArray[$i] = $result->fetch_assoc();
}
}
echo json_encode($musicsArray);
}
我怎样才能解决它
在输出时(我在最后两行只使用波斯语):
在应用程序上:在php my admin:
上,您必须添加头,它告诉客户端响应是用utf-8编码的
header('Content-Type: text/html; charset=utf-8');
编辑
function getMusics()
{
$connection = mysqli_connect(DatabaseManager::HOST_NAME, DatabaseManager::USER_NAME, DatabaseManager::PASSWORD, DatabaseManager::DATABASE_NAME);
$sqlQuery = "SELECT * FROM musics where active = 1 order by date desc;";
$result = $connection->query($sqlQuery);
$musicsArray = array();
if ($result->num_rows > 0) {
for ($i = 0; $i < $result->num_rows; $i++) {
$musicsArray[$i] = $result->fetch_assoc();
}
}
header("Content-type: application/json; charset=utf-8");
echo json_encode($musicsArray);
}
函数getMusics()
{
$connection=mysqli\u connect(DatabaseManager::HOST\u NAME,DatabaseManager::USER\u NAME,DatabaseManager::PASSWORD,DatabaseManager::DATABASE\u NAME);
$sqlQuery=“从音乐中选择*,其中活动=1按日期描述的订单;”;
$result=$connection->query($sqlQuery);
$musicsArray=array();
如果($result->num_rows>0){
对于($i=0;$i<$result->num_行;$i++){
$musicsArray[$i]=$result->fetch_assoc();
}
}
标题(“内容类型:application/json;charset=utf-8”);
echo json_编码($musicsArray);
}
您应该将默认客户端字符集设置为UTF-8。使用
mysqli::set\u charset
或mysqli\u set\u charset
有关更多信息,请参阅。我应该在哪里使用此功能?在响应发出之前,我在下面的addit中添加了它,它应该是
标题(“内容类型:application/json;charset=utf-8”)代码>假设存储在数据库中的字符串实际上是utf-8 incoded字符串,则不会在其他情况下工作。当然,响应也应作为utf8@BasilBattikhi好的,w8您是否尝试过将UTF-8设置为所有MySQL连接的默认编码?演示如何在android中保存数据app@orvenseville数据就是这样。“???”@Droidman No.你能教我怎么做吗?@emen尝试使用header('Content-Type:text/html;charset=utf-8');echo json_编码($musicsArray)??试试这个brojson\u编码($musicsArray,json\u UNESCAPED\u UNICODE)代码>
header('Content-Type: text/html; charset=utf-8');
function getMusics()
{
$connection = mysqli_connect(DatabaseManager::HOST_NAME, DatabaseManager::USER_NAME, DatabaseManager::PASSWORD, DatabaseManager::DATABASE_NAME);
$sqlQuery = "SELECT * FROM musics where active = 1 order by date desc;";
$result = $connection->query($sqlQuery);
$musicsArray = array();
if ($result->num_rows > 0) {
for ($i = 0; $i < $result->num_rows; $i++) {
$musicsArray[$i] = $result->fetch_assoc();
}
}
header("Content-type: application/json; charset=utf-8");
echo json_encode($musicsArray);
}