.php 文件的字符编码错误
Posted
技术标签:
【中文标题】.php 文件的字符编码错误【英文标题】:Character encoding error for .php file 【发布时间】:2015-11-19 09:05:58 【问题描述】:已经为返回 json 的 MarkersController.php 创建了一个路由,但是当我导航到该路由时出现以下错误:
未声明 html 文档的字符编码。如果文档包含 US-ASCII 范围之外的字符,则文档将在某些浏览器配置中呈现乱码。页面的字符编码必须在文档或传输协议中声明。
我的路线如下:
$app->get('/markers/?', function () use ($app)
$controller = new UF\MarkersController($app);
return $controller->getMarkersJSON();
);
MarkersController.php
<!DOCTYPE html>
<html lang="en">
<head>
% include 'components/head.html' %
</head>
<body>
<?php
include('DB_INFO.php');
function getMarkersJSON()
// Opens a connection to a mysql server.
$connection = mysqli_connect($server, $username, $password);
if (!$connection)
die('Not connected : ' . mysqli_error());
// Sets the active MySQL database.
$db_selected = mysqli_select_db($database, $connection);
if (!$db_selected)
die('Can\'t use db : ' . mysqli_error());
// Selects all the rows in the markers table.
$query = "SELECT * FROM tester WHERE 1";
$result = mysqli_query($connection, $query);
if (!$result)
die('Invalid query: '. mysqli_error());
$markers = array();
while ($row = mysqli_fetch_assoc($result))
//Assuming "lat" is column name in tester table. Please change it if required.
$lat= $rows['lat'];
//Assuming "lng" is column name in tester table. Please change it if required.
$lng= $rows['lng'];
$markers = array('lat' => $lat, 'lng' => $lng);
echo json_encode($markers);
?>
</body>
</html>
【问题讨论】:
哪个网络浏览器告诉你这个? 使用此代码,您可以输出带有 JSON 的 HTML。这是你真正想要的吗?您不希望其他程序读取 JSON 吗? @mmm 不,只是希望它输出json,将在其他地方使用...... @fst104 所以摆脱 HTML... @MonkeyZeus 删除 html 后仍然出现错误! 【参考方案1】:你的 head.html 中有 Content-Type 定义吗? 如果答案是否定的,请尝试放置
<meta http-equiv="Content-Type" content="text/html;charset=[your-charset]" />
进入你的 head.html
【讨论】:
以上是关于.php 文件的字符编码错误的主要内容,如果未能解决你的问题,请参考以下文章