php - MySQL 数据库的编码问题 (web2project)

标签 php mysql database character-encoding

当我想用俄语添加项目名称时,应用程序将以不可读的格式将填充的数据保存到mysql数据库中,例如п е фшѤѴ´ÑшфѴ´Ð²Ð Ñ´´ª Ñ„Ñ´´ª вÑшщѴ´´ (проект номер три де фшоысшфыво шщфыовсшщы) в) 。但是,当我想查看有关当前项目的详细信息时,项目的 View 表单会显示输入的数据(例如 проект номер три де фшоысшфыво шщфыовсшщыв)。

由于数据库填充的是非utf8格式,项目的打印 View 也同样存在不便。

我应该更改或删除什么以使数据的插入过程正确?

pic1 pic2

最佳答案

проекÑ是 Mojibake проек .

这是一个经典案例

  • 客户端中的字节已正确编码为 utf8(良好)。
  • 您已联系 SET NAMES latin1 (或set_charset('latin1')或...),可能是默认的。 (应该是 utf8 。)
  • 表中的列可能是也可能不是 CHARACTER SET utf8 ,但本来应该是这样的。

如果您需要修复数据,则需要“两步更改”,例如

ALTER TABLE Tbl MODIFY COLUMN col VARBINARY(...) ...;
ALTER TABLE Tbl MODIFY COLUMN col VARCHAR(...) ... CHARACTER SET utf8 ...;

其中长度足够大,而另一个“...”有其他任何内容( NOT NULL 等)已经在列上。

关于php - MySQL 数据库的编码问题 (web2project),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33256725/

相关文章:

PHP:仅执行for循环来显示html

php - Wordpress:is_page() if 语句未显示内容

php - 如何从已处于特定时区的字符串创建 DateTime 对象?

mysql - SQL 数据透视语法

php - mysql查询中的concat()函数或替代解决方案

php - 将数据拆分为两个表

php - file_get_contents ("php://input") 如果 POST 正文超过约 16 000 个字符,则为空

mysql - 使用 Codeigniter 将复选框值传递到 mysql 数据库

c# - SQL C# insert 命令不起作用

php - Mysql中分组后连接两个表