php - 将它输入到 mysql 时,英镑符号显示为 A£

标签 php mysql

我有一个将价格保存到数据库中的表格,但是当用户输入一个 £ 符号时,它显示为 A£,并且在 A 上带有反射重音(不知道如何写其中一个)。当我在 phpmyadmin 中手动输入它时,它不会执行此操作。价格字段的联合是 latin1,它是一个 varchar,所以我看不出有任何问题。在 php 的 mysql 查询中,价格启用了 htmlspecialchars 和 mysql_real_escape_string,但我已将它们取下,但问题仍然存在。

最后,它不仅以不同方式显示 £ 符号,实际上还以不同方式将其保存到数据库中。我该如何解决这个问题?

最佳答案

这一般是连接的字符集和字符串的使用者不一致造成的。例如,连接字符集可能会返回 UTF-8,而 PHP 脚本可能会将字符串视为 iso-latin-1,这正是导致这种情况的原因。我不确定这些属性是如何在 PHP 中设置的。

mysql CLI 中,您可以使用 SHOW VARIABLES 查看各种属性:

mysql> show variables like '%char%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | latin1                                                  |
| character_set_connection | latin1                                                  |
| character_set_database   | latin1                                                  |
| character_set_filesystem | binary                                                  |
| character_set_results    | latin1                                                  |
| character_set_server     | latin1                                                  |
| character_set_system     | utf8                                                    |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ |
+--------------------------+---------------------------------------------------------+

我会开始往那个方向看。此处的指示是,当您期待单个字符时,您看到的是多个字符。 7 位范围之外的任何内容都将被编码为多个 UTF-8 八位字节。

UTF-8 详细信息

  • “£”是 iso-latin-1 代码点 0xA3
  • 0xA3 使用 UTF-8 编码产生字节 0xC20xA3
  • 0xC20xA3 由 iso-latin-1 字形“£”表示

关于php - 将它输入到 mysql 时,英镑符号显示为 A£,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11119072/

相关文章:

php - Laravel 5.4 将 json 保存到数据库

php - 在 MySQLi 中使用 fetch_array 时检测数据类型

php - YII 报告销售缺失数组

php - 如何查找和识别字符串的特定部分?

php - 如何检查 MySQL php 中的列是否为空?

mysql - 按mysql中select语句 "in"子句中的值顺序排序

php - 无法使用 php 脚本和 fpdf 在 pdf 中打印希腊字符

mysql - 无法启动和连接到 MySQL 服务器

mysql - 无法访问远程mysql服务器需要帮助

php - var_dump 变量在 php 中不返回任何内容