在谷歌图表中编码阿拉伯语

时间:2016-12-31 11:03:13

标签: php mysql

我试图从我的phpmyadmin获取数据,它们是阿拉伯语,并且显示为问号 - ???

photo of the result

我的代码是:

<?php
 $con = mysqli_connect('localhost','root','','kidwah');

?>
<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8">
        <title>
            Create Google Charts
        </title>
        <script type="text/javascript" src="https://www.google.com/jsapi"></script>
        <script type="text/javascript">
            google.load("visualization", "1", {packages:["corechart"]});
            google.setOnLoadCallback(drawChart);
            function drawChart() {
                var data = google.visualization.arrayToDataTable([
                ['description', 'o_owner'],
                <?php
                $query = "SELECT count(o_owner) AS count, description FROM sakk GROUP BY o_owner";

                $exec = mysqli_query($con,$query);
                while($row = mysqli_fetch_array($exec)) {

                    echo "['".$row['description']."',".$row['count']."],";
                }
                ?>
            ]);

            var options = {
                title: 'Browser wise visits'
            };

            var chart = new google.visualization.PieChart(document.getElementById('piechart'));

            chart.draw(data, options);
        }
        </script>
    </head>
    <body>
        <h3>Pie Chart</h3>
        <div id="piechart" style="width: 900px; height: 500px;"></div>
    </body>
</html>

我希望有人能解决这类问题。

3 个答案:

答案 0 :(得分:0)

由于以下原因,某些字符(阿拉伯语,日语等)将显示为问号,即使字符集设置为UTF-8。

您尚未正确设置默认字符的默认编码。 DEFAULT CHARSET将以UTF-8的形式返回,但是character_set_server将会有所不同。

您可以通过在SQL

中执行类似的操作来更改它
SHOW VARIABLES LIKE 'character\_set\_%';

检查是否是这种情况。

你最有可能

character_set_server latin1

您需要将其更改为utf8。

如果您想了解更多相关信息,请转到来源。 Source / more info

答案 1 :(得分:0)

如果我理解你的问题,那么你的问题就是html内容代码。

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

更改此行
<meta http-equiv="content-type" content="text/html; charset=UTF-16" />

答案 2 :(得分:0)

将 C# 阿拉伯语字符串转换为 $Javascript 字符串时会出现问题,要正确转换它,请执行以下操作:

1- 添加@using $System.Web;在您的视图页面顶部 2- 使用此方法转换字符串,下面我将显示来自 $ViewBag 的集合中项目的转换

    @{
            foreach (var item in ViewBag.Items)
            { 
   @:dataArray.push(['@Html.Raw(HttpUtility.JavaScriptStringEncode(@item.Name))', 
    @item.Price]);
            }
        }