【问题标题】:Properly decoding UTF-8 HTML page正确解码 UTF-8 HTML 页面
【发布时间】:2015-03-09 17:57:31
【问题描述】:

我在使用 HTML 5 时遇到了一些奇怪的问题,目前我正在从 MySQL 上的数据库中检索信息,该数据库使用 UTF-8 编码,当我在不使用任何 HTML 标记的情况下检索信息时,一切正常,但在带有 HTML 标记的页面无法正常工作。

  • 这是一个使用 HTML 标记的page
  • 这是一个没有任何 HTML 标记的 page(运行良好)

查询是完全相同的。

这里是 HEAD 信息:

<!DOCTYPE html>
 <html lang="pt-br">
      <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Quizu - Testes de personalidade</title>

    <!-- Bootstrap -->
      <link href="css/normalize.css" rel="stylesheet">
      <link href="css/bootstrap.min.css" rel="stylesheet">
      <link href="css/bootstrap-social.css" rel="stylesheet">
      <script src="js/jquery-1.11.2.js"></script>
      <script src="js/meu.js"></script>
      <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">

      <link href="css/quizu.css" rel="stylesheet">

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>

提前致谢,我们将不胜感激。

【问题讨论】:

  • 您没有标记的页面在 windows-1252 中被解析。带有标记的页面是用 UTF-8 解析的,因为你这么说。
  • 这很奇怪,通过删除 meta charset=utf-8,一切正常。
  • 没错,因为文本没有以 UTF-8 编码。要么将其编码为 UTF-8,要么告诉浏览器您正在编码。

标签: html mysql utf-8


【解决方案1】:

问题出在我的 MySQL 查询中,虽然我的数据库是用 UTF-8 编码的,但查询不是使用 UTF-8 进行的。我所要做的就是对我的查询执行“SET NAMES UTF-8”。

$dbHandle = new PDO("mysql:host=$dbHost;dbname=$dbName;charset=utf8", $dbUser, $dbPass,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 1970-01-01
    • 2017-06-20
    • 2013-02-01
    • 1970-01-01
    相关资源
    最近更新 更多