php - MySQL DB - 保存特殊字符★

标签 php mysql

  1. 我在 MYSQL 中有一个表。它被定义为字符集 - utf8,排序规则:utf8_general_ci。 ITEM_TITLE 列定义为 varchar。

  2. 我有这个疑问:
    更新详细信息设置ITEM_TITLE ="★32GB 超值包★ Sony Xperia miro ST23i 4GB Int 白色配银色"地点 TaskID =109

  3. 结果是,在 ITEM_TITLE 列中,我的标题不带 ★ 且带有“?”相反。

问题:为了正确地将“★”保存在数据库中,我应该做什么?

**我找到了 SQL Server 的解决方案 - 使用 Nvarchar 而不是 varchar,但 MySQL 中没有这种类型。

答案:我了解问题所在,以及为什么对某人有效的解决方案对我不起作用。 首先,我的数据库的默认字符集是拉丁字符集。所以我将其更改为UTF-8,但并没有解决问题。 原因是我的大部分行都有一个拉丁字符集。我不知道它是自动为 varchar 设置的,即使我将表设置为 UTF-8 也不会改变。所以我将所有内容都更改为 UTF-8 并且它可以修复。

感谢您的帮助!

最佳答案

这应该没有问题。我们来试试吧

mysql> CREATE TABLE details (
    ->   id int(11) unsigned NOT NULL AUTO_INCREMENT,
    ->   item_title varchar(255) DEFAULT NULL,
    ->   PRIMARY KEY (id)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)

mysql> INSERT INTO details (item_title) VALUES('★32GB VALUE PACK★ Sony Xperia miro ST23i 4GB Int');
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM details;
+----+------------------------------------------------------+
| id | item_title                                           |
+----+------------------------------------------------------+
|  1 | ★32GB VALUE PACK★ Sony Xperia miro ST23i 4GB Int     |
+----+------------------------------------------------------+
1 row in set (0.00 sec)

因此,您很可能在进出数据库的过程中破坏这些字符。

关于php - MySQL DB - 保存特殊字符★,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20935278/

相关文章:

php - 如何在一个选项卡或窗口中更新最新的 ID,同时在不同的选项卡或窗口中插入记录?

php - 关于 PHP 中 OOP 的使用,这是正确的吗?

php - 通知 : Undefined index: variable

php - PDO 不会从字符串中提取数据,但可以很好地处理整数

mysql - 使用给定的非常规范化的表编写查询 - 在采访中被问及

PHP: session 和 mysql_pconnect() 都继续启动新的 session /进程

php - Group_concat(distinct) 用于空字符串

javascript - Node.js client.emit 仅在第一次尝试后才工作?

php - 数据库数据不显示在网页上

php - 在 joomla ADMIN 登录表单中记住我复选框。如何?