首页 > 解决方案 > Sequelize 转换 UTF8 中的 DB 值,是吗?

问题描述

我一方面试图处理一个旧的 PHP 遗留网站,另一方面在 NodeJS / React 中处理一个新的单独部分。他们共享相同的数据,因此共享相同的数据库。

如果我使用 User 表,DDL 会显示该表具有 utf8 作为字符集,但某些字段除外,例如用户名:

CREATE TABLE `User` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  ...
  `name` varchar(20) CHARACTER SET latin1 NOT NULL,
  ...
) ENGINE=InnoDB AUTO_INCREMENT=69482 DEFAULT CHARSET=utf8

我真的不知道这个奇怪的配置背后的原因,除了可能与 JSON 事务的链接不接受重音字符并且我们的数据是法语的。但不确定...

Noé无论如何,PHP 将数据存储在 UTF8 中,从而导致 mojibake : give Noé. 但是以同样的方式返回,PHP 正确显示它。

现在,NodeJs 和 Sequelize 来获取数据。当我想要获取用户“Noé”时,Sequelize 会获取Noé并 React 以相同的方式显示它“Noé”。

我有点困惑,谢谢你的帮助:)

标签: phpmysqlnode.jsutf-8sequelize.js

解决方案


推荐阅读