android的json utf-8编码

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

我的安卓应用程序数据库中有一些波斯语(utf8)单词,我正在使用json在安卓应用程序中显示数据库信息。
我在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)??试试这个bro
json\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);
}