安卓智能手机上显示的随机数字和字母


Random numbers and letters displayed on Android smartphone?

我所有的网页在我能看到的所有浏览器中都显示良好,但我只是注意到运行Android操作系统的移动设备(HTC One)上有一些奇怪的东西(以及一些iPhone,但不是全部)。Android浏览器在整个页面中显示随机数字和字母,只要文件中有PHP代码(而不仅仅是我回显数据的区域)。它们不是特殊字符,这让我认为这不是字符编码问题,而是它们看起来可能是十六进制字符——比如"c14"、"9e"、"22a"、"92d"、"fe3b"、"3471"(只是几个例子)——每次刷新浏览器时,它们都会更改或出现。如果我不断刷新,一些字符模式会再次出现,就好像它在某个事物中循环一样,但我还没能确定一个模式。最大的问题是,有时这些东西会出现在HTML表单的输入标记的值中,并扰乱提交的数据。

我最初认为这可能是一个字符编码问题,所以我仔细检查了我的PHP文件是否编码为UTF-8,但这并没有改变任何事情。

下面是一小段简单的代码,我一直在尝试隔离这个问题:

<?php
include('connect-db.php');
if(isset($_GET['seid']) && is_numeric($_GET['seid']) && $_GET['seid'] > 0){
  $sub_event_id = $_GET['seid'];
  $sub_event_id = mysql_real_escape_string($sub_event_id);
  $result = mysql_query("SELECT sub_event_id, event_name
                         FROM event_details
                         WHERE sub_event_id=$sub_event_id") or die(mysql_error());
  $row = mysql_fetch_assoc($result);
  ?>
  <!DOCTYPE html>
  <html>
  <head>
  <meta charset="UTF-8">
  <title><?php echo $row['event_name']; ?></title>
  </head>
  <body>
  <?php echo $row['sub_event_id']; ?>
  </body>
  </html>
<?php } ?>

以下是浏览器中显示内容的示例。

如果$row['event_name']就是"Joe’s的派对"和$row['sub_event_id']是,假设为"1"

这是你在浏览器的"视图源"中看到的随机示例之一:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>22
Party at Joe's
18</title>
</head>
<body>
5
1
11
</body>
</html>
0

如果我刷新浏览器,随机数可能会消失,然后又回来,但底部的"0"通常大部分时间都在那里。代码较多的文件往往也包含随机字母。同样,这些似乎会出现在文件中PHP代码的任何位置。有时也会出现在页面的顶部。

第一次尝试添加旧的UTF-8元设置,以防该特定设备上的浏览器不查找新的元属性:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

其次(我最近遇到过这种情况)尝试在新文件中手动重新键入代码。如果您从另一个源复制了代码,该源可能是在编码设置不正确的IDE中编写的,您可能已经将示例代码中的不可见字符复制到新脚本中。。。

最后确保为UFT-8正确配置了用于编写脚本的工具,以确保您键入的代码编码正确。即使将编码错误的代码粘贴到具有正确编码设置的IDE中,也无法解决所有字符编码问题。

您可以通过用HEX编辑器打开脚本并查看二进制文件来识别脚本是否包含不可见字符,可能会有额外的字节不突出显示。有时,不可见的字符可以在HEX编辑器中变得可见。

https://en.wikipedia.org/wiki/Comparison_of_hex_editors

  • 或-

使用十六进制编辑器插件的记事本++:

https://sourceforge.net/projects/npp-plugins/files/Hex%20Editor/