php - PHP 中的 XML 输出 (UTF-8)

标签 php mysql xml google-maps utf-8

我正在按照本教程在我的网页中实现谷歌地图:

https://developers.google.com/maps/articles/phpsqlajax_v3#createtable

我的数据库连接一切顺利。我的数据库中的信息有像“á,é,í”这样的字符

当我尝试在浏览器中检查 XML 文件时出现以下错误:

此页面包含以下错误:

第 1 行第 10 列错误:编码错误 以下是第一个错误之前的页面呈现。

在 map 上,数据显示为:Bogot�。哥伦比亚首都。 而不是:波哥大。

多谢指教!

最佳答案

Everything went perfect with my Data Base connection. The information in my Data Base has characters like "á,é,í"

请注意这里的小细节:

一方面你写

Everything went perfect with my Data Base connection.

另一边写:

The information in my Data Base has characters like "á,é,í"

所以我在这里试图使可见的是数据库连接不是数据库:

[PHP code] <--- database connection ---> [database server]-+-[data]

数据库连接是服务器和您的程序之间数据流的协商。

编码是元信息,无论您将数据(字符串)传递到哪里,这种关于编码的元信息要么是对的,要么是错的。

如果错误,可能会导致意想不到的结果。结果如您所见:

Bogot�. Capital de Colombia.

(而不是“波哥大。哥伦比亚首都。”)

根据经验,我可以告诉您以下关于这个大局的信息:

  1. 浏览器给你 � 字符是一个标志,表明它捕获了一个二进制数据序列,不能从中生成有效的代码点(让我们在这里简称为一个字母)并很好地显示该字母.相反,它会在菱形中显示问号以表示存在问题。
  2. 这是一个标志,表明 Unicode 编码是预期的,但没有给出。
  3. 根据经验,您输入的是 UTF-8 单字节字符集。

这可能有多种原因。

所以让我们记住我刚刚在数据本身旁边写的关于元数据的内容,并回顾一下数据库连接:

[PHP code] <--- database connection ---> [database server]-+-[data]

最重要的是好消息:数据库连接允许您作为 PHP 代码的程序员告诉数据库您期望的编码。

然后,当您从数据库服务器请求数据时,数据库服务器会查看它所拥有的数据,并将按照您要求的编码对数据进行编码。这不是很好吗?

所以您需要做的就是告诉数据库服务器您希望使用哪种字符编码。

为此,您需要知道响应将使用哪种字符编码。现在网络中最常见的是 UTF-8。所以告诉你的数据库服务器你想要 UTF-8。一切都应该没问题:

编辑:看到您的评论:不,您在其中不必要地添加了 utf8_encode 调用。数据库可以为您提供已经正确编码的数据(并且始终正确)。 utf8_encode 适用于 Latin-1 编码字符串,当您的数据与数据库中的数据不同时,它将失败。不要让它太具体,而只需为数据库连接使用正确的参数,你就不用担心了,因为你知道你要求的是哪种编码。

重要原则:尽可能提出你想要的东西,而不是自己创造。

关于php - PHP 中的 XML 输出 (UTF-8),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29355427/

相关文章:

php - Mysql 使 --secure-file-priv 选项为 NULL

php - 在 PHP MySql 站点中实现信用卡处理

javascript - Highcharts Node.js 导出服务器 : Connection error

MySQL Match() Against() 区分大小写

xml - 如何在 ODOO 中添加 Google map 链接?

Java SAXParser 解析无效的 xml

javascript - 如果 json_encode 包含数据库查询中的字符,则 JavaScript 上的条件

mysql先删除再插入。不插入 AI 表的删除行!为什么?

php - 通过 apache 并发 MySQL 请求时出现 HTTP 500(内部服务器错误)

html - 如何使用 Groovy XML MarkupBuilder 创建有效的 HTML 脚本标签?