php - ä ö 字符编码,在 PHP 中,Zend MySQL- 应用程序

标签 php mysql encoding utf-8 character

问题:

当我从 MySQL 表中检索值到我的 PHP Zend Framework 应用程序时,字符 ä 和 ö 会像这样从数据库返回到我的浏览器。

有什么想法可能会出现问题吗?我已经尝试将一些属性设置为 UTF-8,但仍然会发生这种情况......我想我还是错过了一些东西。

您能否提供一些解决方案,我可以确定如何摆脱它?我需要设置什么配置等等。

谢谢你:)

最佳答案

当浏览器读取错误编码的字符时,它们会显示为 � 或 ?。某处存在编码不匹配:

  • 在您的浏览器中
  • 在数据库表整理
  • 在 HTML 字符集中

这些字符可以在 Unicode UTF-8 中使用,因此您应该验证您的数据库表排序规则是 utf8_bin 或类似的,因为如果您想以 UTF-8 瑞典语存储所有内容,您可能使用 utf8_swedish_ci

在您的浏览器中,确保您的内容编码设置为自动检测。

要在 MySQL 中创建一个 UTF-8/utf8_bin 表,这里是一个例子:

CREATE TABLE `sample` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

要更改现有表以使用 UTF-8,请使用以下命令:

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

This post对于是否使用 CONVERT TO CHRACTER SET utf8

有很好的解释

注意 CHARSETCOLLATE 必须同时设置,否则会自动得到 COLLATE=utf8_general_ci

对于 HTML,可以使用以下方式设置字符集:

<meta charset="UTF-8">

关于php - ä ö 字符编码,在 PHP 中,Zend MySQL- 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11742916/

相关文章:

ruby - "Invalid multibyte char (US-ASCII)"ä、ü、ö、ß 是 Ascii 的错误!

c# - 如何正确地将 iso-8859-1 转换为 utf8?

php - Laravel 中的发布/输入动态字段

php - 在 mysql 中查询日期什么都不返回?

php - 如何制作收件箱,向发送和接收消息的人显示聊天历史记录

mysql - Google App Engine 连接外部 MySQL Node.js

php - 除了作为 blob 之外,是否有更节省空间的方式将图像存储在数据库中?

R rvest UTF-8 编码错误

javascript - 使用 PHP 从服务器下载 apk 时出现垃圾输出

php - 下拉菜单缺少插入的最后一行